date与date时间
我正在开发一个程序,要求返回一个事件的date。 我正在寻找一个“date”,而不是“date时间”。 必须有一个返回date的数据types…在那里?
没有没有。 DateTime
代表由date和时间组成的某个时间点。 但是,您可以通过Date
属性(这是另一个DateTime
时间设置为00:00:00
)检索date部分。
而且您可以通过Day
, Month
和Year
检索单个date属性。
当你需要一个简单的date时,我创build了一个简单的Date结构 ,而不用担心时间部分,时区,本地和utc等。
Date today = Date.Today; Date yesterday = Date.Today.AddDays(-1); Date independenceDay = Date.Parse("2013-07-04"); independenceDay.ToLongString(); // "Thursday, July 4, 2013" independenceDay.ToShortString(); // "7/4/2013" independenceDay.ToString(); // "7/4/2013" independenceDay.ToString("s"); // "2013-07-04" int july = independenceDay.Month; // 7
不幸的是,不在.Net BCL中。 date通常表示为时间设置为午夜的DateTime对象。
正如你所猜测的那样,这意味着你有所有相关的时区问题,即使对于一个Date对象,你也绝对不需要时区处理。
创build一个包装类。 像这样的东西:
public class Date:IEquatable<Date>,IEquatable<DateTime> { public Date(DateTime date) { value = date.Date; } public bool Equals(Date other) { return other != null && value.Equals(other.value); } public bool Equals(DateTime other) { return value.Equals(other); } public override string ToString() { return value.ToString(); } public static implicit operator DateTime(Date date) { return date.value; } public static explicit operator Date(DateTime dateTime) { return new Date(dateTime); } private DateTime value; }
并揭露你想要的任何value
。
Datetypes只是VB.NET使用的DateTimetypes的别名(如int变成Integer)。 这两种types都有一个Date属性,它将时间部分设置为00:00:00的对象返回给您。
date时间有一个date属性,您可以用来隔离date部分。 当时间部分为空时, ToString方法也做了很好的工作,只显示date部分。
您可以返回时间部分为00:00:00的DateTime,并忽略它。 date是作为时间戳整数处理的,因此将date与整数中的时间相结合是有意义的。
为此,您需要使用date,但忽略时间值。
通常一个date将是一个时间为00:00:00
的date时间
DateTime
types具有.Date
属性,该属性返回DateTime
,其时间值如上设置。
DateTime对象有一个只返回值的date部分的属性。
public static void Main() { System.DateTime _Now = DateAndTime.Now; Console.WriteLine("The Date and Time is " + _Now); //will return the date and time Console.WriteLine("The Date Only is " + _Now.Date); //will return only the date Console.Write("Press any key to continue . . . "); Console.ReadKey(true); }
没有Date
types。
但是,您可以使用DateTime.Date
来获取date。
例如
DateTime date = DateTime.Now.Date;
public class AsOfdates { public string DisplayDate { get; set; } private DateTime TheDate; public DateTime DateValue { get { return TheDate.Date; } set { TheDate = value; } } }
您可以尝试以下方法之一:
DateTime.Now.ToLongDateString(); DateTime.Now.ToShortDateString();
但BCL中没有“date”types。