销售电话: 1-800-867-1380
此文章由机器翻译。 将光标移到文章的句子上,以查看原文。 更多信息。
译文
原文
信息
您所需的主题如下所示。但此主题未包含在此库中。

DateTime 结构

表示时间上的一刻,通常以日期和当天的时间表示。

若要浏览此类型的 .NET Framework 源代码,请参见 参考来源

命名空间:  System
程序集:  mscorlib(在 mscorlib.dll 中)

[SerializableAttribute]
public struct DateTime : IComparable, IFormattable, 
	IConvertible, ISerializable, IComparable<DateTime>, IEquatable<DateTime>

DateTime 类型公开以下成员。

  名称说明
公共方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持DateTime(Int64)DateTime 结构的新实例初始化为指定的刻度数。
公共方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持DateTime(Int64, DateTimeKind)DateTime 结构的新实例初始化为指定的计时周期数以及协调世界时 (UTC) 或本地时间。
公共方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持DateTime(Int32, Int32, Int32)DateTime 结构的新实例初始化为指定的年、月和日。
公共方法由 XNA Framework 提供支持DateTime(Int32, Int32, Int32, Calendar)DateTime 结构的新实例初始化为指定日历的指定年、月和日。
公共方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持DateTime(Int32, Int32, Int32, Int32, Int32, Int32)DateTime 结构的新实例初始化为指定的年、月、日、小时、分钟和秒。
公共方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持DateTime(Int32, Int32, Int32, Int32, Int32, Int32, DateTimeKind)DateTime 结构的新实例初始化为指定年、月、日、小时、分钟、秒和协调世界时 (UTC) 或本地时间。
公共方法由 XNA Framework 提供支持DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Calendar)DateTime 结构的新实例初始化为指定日历的指定年、月、日、小时、分钟和秒。
公共方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32)DateTime 结构的新实例初始化为指定的年、月、日、小时、分钟、秒和毫秒。
公共方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, DateTimeKind)DateTime 结构的新实例初始化为指定年、月、日、小时、分钟、秒、毫秒和协调世界时 (UTC) 或本地时间。
公共方法由 XNA Framework 提供支持DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar)DateTime 结构的新实例初始化为指定日历的指定年、月、日、小时、分钟、秒和毫秒。
公共方法由 XNA Framework 提供支持DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar, DateTimeKind)DateTime 结构的新实例初始化为指定日历的指定年、月、日、小时、分钟、秒、毫秒和协调世界时 (UTC) 或本地时间。
页首

  名称说明
公共属性由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Date获取此实例的日期部分。
公共属性由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Day获取此实例所表示的日期为该月中的第几天。
公共属性由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持DayOfWeek获取此实例所表示的日期是星期几。
公共属性由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持DayOfYear获取此实例所表示的日期是该年中的第几天。
公共属性由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Hour获取此实例所表示日期的小时部分。
公共属性由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Kind获取一个值,该值指示由此实例表示的时间是基于本地时间、协调世界时 (UTC),还是两者皆否。
公共属性由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Millisecond获取此实例所表示日期的毫秒部分。
公共属性由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Minute获取此实例所表示日期的分钟部分。
公共属性由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Month获取此实例所表示日期的月份部分。
公共属性静态成员由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Now获取一个 DateTime 对象,该对象设置为此计算机上的当前日期和时间,表示为本地时间。
公共属性由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Second获取此实例所表示日期的秒部分。
公共属性由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Ticks获取表示此实例的日期和时间的计时周期数。
公共属性由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持TimeOfDay获取此实例的当天的时间。
公共属性静态成员由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Today获取当前日期。
公共属性静态成员由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持UtcNow获取一个 DateTime 对象,该对象设置为此计算机上的当前日期和时间,表示为协调通用时间 (UTC)。
公共属性由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Year获取此实例所表示日期的年份部分。
页首

  名称说明
公共方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Add返回一个新的 DateTime,它将指定 TimeSpan 的值加到此实例的值上。
公共方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持AddDays返回一个新的 DateTime,它将指定的天数加到此实例的值上。
公共方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持AddHours返回一个新的 DateTime,它将指定的小时数加到此实例的值上。
公共方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持AddMilliseconds返回一个新的 DateTime,它将指定的毫秒数加到此实例的值上。
公共方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持AddMinutes返回一个新的 DateTime,它将指定的分钟数加到此实例的值上。
公共方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持AddMonths返回一个新的 DateTime,它将指定的月数加到此实例的值上。
公共方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持AddSeconds返回一个新的 DateTime,它将指定的秒数加到此实例的值上。
公共方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持AddTicks返回一个新的 DateTime,它将指定的计时周期数加到此实例的值上。
公共方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持AddYears返回一个新的 DateTime,它将指定的年份数加到此实例的值上。
公共方法静态成员由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Compare对两个 DateTime 的实例进行比较,并返回一个指示第一个实例是早于、等于还是晚于第二个实例的整数。
公共方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持CompareTo(DateTime)将此实例的值与指定的 DateTime 值相比较,并返回一个整数,该整数指示此实例是早于、等于还是晚于指定的 DateTime 值。
公共方法由 XNA Framework 提供支持CompareTo(Object)将此实例的值与包含指定的 DateTime 值的指定对象相比较,并返回一个整数,该整数指示此实例是早于、等于还是晚于指定的 DateTime 值。
公共方法静态成员由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持DaysInMonth返回指定年和月中的天数。
公共方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Equals(DateTime)返回一个值,该值指示此实例的值是否等于指定 DateTime 实例的值。
公共方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Equals(Object)返回一个值,该值指示此实例是否等于指定的对象。 (重写 ValueType.Equals(Object)。)
公共方法静态成员由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Equals(DateTime, DateTime)返回一个值,该值指示两个 DateTime 实例是否具有同一个日期和时间值。
公共方法静态成员受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持FromBinary反序列化一个 64 位二进制值,并重新创建序列化的 DateTime 初始对象。
公共方法静态成员由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持FromFileTime将指定的 Windows 文件时间转换为等效的本地时间。
公共方法静态成员由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持FromFileTimeUtc将指定的 Windows 文件时间转换为等效的 UTC 时间。
公共方法静态成员由 XNA Framework 提供支持FromOADate返回与指定的 OLE 自动化日期等效的 DateTime
公共方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持GetDateTimeFormats()将此实例的值转换为标准日期和时间格式说明符支持的所有字符串表示形式。
公共方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持GetDateTimeFormats(Char)将此实例的值转换为指定的标准日期和时间格式说明符支持的所有字符串表示形式。
公共方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持GetDateTimeFormats(IFormatProvider)将此实例的值转换为标准日期和时间格式说明符和指定的区域性特定格式信息支持的所有字符串表示形式。
公共方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持GetDateTimeFormats(Char, IFormatProvider)将此实例的值转换为指定的标准日期和时间格式说明符和区域性特定格式信息支持的所有字符串表示形式。
公共方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持GetHashCode返回此实例的哈希代码。 (重写 ValueType.GetHashCode()。)
公共方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持GetType获取当前实例的 Type (继承自 Object。)
公共方法由 XNA Framework 提供支持GetTypeCode返回值类型 DateTimeTypeCode
公共方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持IsDaylightSavingTime指示此 DateTime 实例是否在当前时区的夏时制范围内。
公共方法静态成员由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持IsLeapYear返回指定的年份是否为闰年的指示。
公共方法静态成员由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Parse(String)将日期和时间的字符串表示形式转换为其等效的 DateTime
公共方法静态成员由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Parse(String, IFormatProvider)使用区域性特定格式信息,将日期和时间的字符串表示形式转换为其等效的 DateTime
公共方法静态成员由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Parse(String, IFormatProvider, DateTimeStyles)使用区域性特定格式信息和格式设置样式将日期和时间的字符串表示形式转换为其等效的 DateTime
公共方法静态成员由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持ParseExact(String, String, IFormatProvider)使用指定的格式和区域性特定格式信息,将日期和时间的指定字符串表示形式转换为其等效的 DateTime 字符串表示形式的格式必须与指定的格式完全匹配。
公共方法静态成员由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持ParseExact(String, String, IFormatProvider, DateTimeStyles)使用指定的格式、区域性特定的格式信息和样式将日期和时间的指定字符串表示形式转换为其等效的 DateTime 字符串表示形式的格式必须与指定的格式完全匹配,否则会引发异常。
公共方法静态成员由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持ParseExact(String, String[], IFormatProvider, DateTimeStyles)使用指定的格式数组、区域性特定格式信息和样式,将日期和时间的指定字符串表示形式转换为其等效的 DateTime 字符串表示形式的格式必须至少与指定的格式之一完全匹配,否则会引发异常。
公共方法静态成员由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持SpecifyKind创建新的 DateTime 对象,该对象具有与指定的 DateTime 相同的刻度数,但是根据指定的 DateTimeKind 值的指示,指定为本地时间或协调世界时 (UTC),或者两者皆否。
公共方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Subtract(DateTime)从此实例中减去指定的日期和时间。
公共方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Subtract(TimeSpan)从此实例中减去指定持续时间。
公共方法受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持ToBinary将当前 DateTime 对象序列化为一个 64 位二进制值,该值随后可用于重新创建 DateTime 对象。
公共方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持ToFileTime将当前 DateTime 对象的值转换为 Windows 文件时间。
公共方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持ToFileTimeUtc将当前 DateTime 对象的值转换为 Windows 文件时间。
公共方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持ToLocalTime将当前 DateTime 对象的值转换为本地时间。
公共方法由 XNA Framework 提供支持ToLongDateString将当前 DateTime 对象的值转换为其等效的长日期字符串表示形式。
公共方法由 XNA Framework 提供支持ToLongTimeString将当前 DateTime 对象的值转换为其等效的长时间字符串表示形式。
公共方法由 XNA Framework 提供支持ToOADate将此实例的值转换为等效的 OLE 自动化日期。
公共方法由 XNA Framework 提供支持ToShortDateString将当前 DateTime 对象的值转换为其等效的短日期字符串表示形式。
公共方法由 XNA Framework 提供支持ToShortTimeString将当前 DateTime 对象的值转换为其等效的短时间字符串表示形式。
公共方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持ToString()将当前 DateTime 对象的值转换为其等效的字符串表示形式。 (重写 ValueType.ToString()。)
公共方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持ToString(IFormatProvider)使用指定的区域性特定格式信息将当前 DateTime 对象的值转换为它的等效字符串表示形式。
公共方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持ToString(String)使用指定的格式将当前 DateTime 对象的值转换为它的等效字符串表示形式。
公共方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持ToString(String, IFormatProvider)使用指定的格式和区域性特定格式信息将当前 DateTime 对象的值转换为它的等效字符串表示形式。
公共方法由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持ToUniversalTime将当前 DateTime 对象的值转换为协调世界时 (UTC)。
公共方法静态成员受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持TryParse(String, DateTime)将日期和时间的指定字符串表示形式转换为其 DateTime 等效项,并返回一个指示转换是否成功的值。
公共方法静态成员受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持TryParse(String, IFormatProvider, DateTimeStyles, DateTime)使用指定的区域性特定格式信息和格式设置样式,将日期和时间的指定字符串表示形式转换为其 DateTime 等效项,并返回一个指示转换是否成功的值。
公共方法静态成员受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime)使用指定的格式、区域性特定的格式信息和样式将日期和时间的指定字符串表示形式转换为其等效的 DateTime 字符串表示形式的格式必须与指定的格式完全匹配。 该方法返回一个指示转换是否成功的值。
公共方法静态成员受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime)使用指定的格式数组、区域性特定格式信息和样式,将日期和时间的指定字符串表示形式转换为其等效的 DateTime 字符串表示形式的格式必须至少与指定的格式之一完全匹配。 该方法返回一个指示转换是否成功的值。
页首

  名称说明
公共运算符静态成员由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Addition将指定的时间间隔加到指定的日期和时间以生成新的日期和时间。
公共运算符静态成员由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Equality确定 DateTime 的两个指定的实例是否相等。
公共运算符静态成员由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持GreaterThan确定指定的 DateTime 是否晚于另一个指定的 DateTime
公共运算符静态成员由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持GreaterThanOrEqual指定一个指定的 DateTime 表示的日期和时间等于还是早晚于另一个指定的 DateTime
公共运算符静态成员由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Inequality确定 DateTime 的两个指定的实例是否不等。
公共运算符静态成员由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持LessThan确定指定的 DateTime 是否早于另一个指定的 DateTime
公共运算符静态成员由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持LessThanOrEqual指定一个指定的 DateTime 表示的日期和时间等于还是早于另一个指定的 DateTime
公共运算符静态成员由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Subtraction(DateTime, DateTime)将指定的日期和时间与另一个指定的日期和时间相减,返回一个时间间隔。
公共运算符静态成员由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Subtraction(DateTime, TimeSpan)从指定的日期和时间减去指定的时间间隔,返回新的日期和时间。
页首

  名称说明
公共字段静态成员由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持MaxValue表示 DateTime 的最大可能值。 此字段为只读。
公共字段静态成员由 XNA Framework 提供支持受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持MinValue表示 DateTime 的最小可能值。 此字段为只读。
页首

  名称说明
显式接口实现私有方法受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持IComparable.CompareTo将实例与同一类型的另一个对象进行比较,并返回一个整数,该整数指示当前实例在排序顺序中的位置是位于另一个对象之前、之后还是与其位置相同。
显式接口实现私有方法由 XNA Framework 提供支持IConvertible.ToBoolean基础结构。不支持此转换。 尝试使用此方法将引发 InvalidCastException
显式接口实现私有方法由 XNA Framework 提供支持IConvertible.ToByte基础结构。不支持此转换。 尝试使用此方法将引发 InvalidCastException
显式接口实现私有方法由 XNA Framework 提供支持IConvertible.ToChar基础结构。不支持此转换。 尝试使用此方法将引发 InvalidCastException
显式接口实现私有方法由 XNA Framework 提供支持IConvertible.ToDateTime基础结构。返回当前 DateTime 对象。
显式接口实现私有方法由 XNA Framework 提供支持IConvertible.ToDecimal基础结构。不支持此转换。 尝试使用此方法将引发 InvalidCastException
显式接口实现私有方法由 XNA Framework 提供支持IConvertible.ToDouble基础结构。不支持此转换。 尝试使用此方法将引发 InvalidCastException
显式接口实现私有方法由 XNA Framework 提供支持IConvertible.ToInt16基础结构。不支持此转换。 尝试使用此方法将引发 InvalidCastException
显式接口实现私有方法由 XNA Framework 提供支持IConvertible.ToInt32基础结构。不支持此转换。 尝试使用此方法将引发 InvalidCastException
显式接口实现私有方法由 XNA Framework 提供支持IConvertible.ToInt64基础结构。不支持此转换。 尝试使用此方法将引发 InvalidCastException
显式接口实现私有方法由 XNA Framework 提供支持IConvertible.ToSByte基础结构。不支持此转换。 尝试使用此方法将引发 InvalidCastException
显式接口实现私有方法由 XNA Framework 提供支持IConvertible.ToSingle基础结构。不支持此转换。 尝试使用此方法将引发 InvalidCastException
显式接口实现私有方法由 XNA Framework 提供支持IConvertible.ToType基础结构。将当前的 DateTime 对象转换为指定类型的对象。
显式接口实现私有方法由 XNA Framework 提供支持IConvertible.ToUInt16基础结构。不支持此转换。 尝试使用此方法将引发 InvalidCastException
显式接口实现私有方法由 XNA Framework 提供支持IConvertible.ToUInt32基础结构。不支持此转换。 尝试使用此方法将引发 InvalidCastException
显式接口实现私有方法由 XNA Framework 提供支持IConvertible.ToUInt64基础结构。不支持此转换。 尝试使用此方法将引发 InvalidCastException
显式接口实现私有方法ISerializable.GetObjectData使用序列化当前 DateTime 对象所需要的数据来填充 SerializationInfo 对象。
页首

若要显示此类型的 .NET Framework 源代码,请参见 参考来源 通过联机的源代码浏览,通过源下载脱机查看的引用和步骤 (包括更新和修补程序) 调试期间,;参见 指令

DateTime 值类型表示范围在公元(基督纪元)0001年1月1日午夜00:00:00到公元9999年12月31日晚上11:59:59之间的日期和时代。公历中的基督纪元。

时间值以 100 纳秒为单位(该单位称为计时周期)进行计量,而特定日期(C.E.)在 GregorianCalendar 日历中(不包括闰秒将添加的时钟周期) 。 例如,计时周期值 31241376000000000L 表示 0100 年 1 月 1 日(星期五)午夜 12:00:00。 DateTime 值始终在显式或默认日历的上下文中表示。

说明说明

如果您正在处理一个您想要将转换为其他时间间隔(如分钟或秒)的计时周期值,您应该使用 TimeSpan.TicksPerDayTimeSpan.TicksPerHourTimeSpan.TicksPerMinuteTimeSpan.TicksPerSecond,或 TimeSpan.TicksPerMillisecond 常量来执行转换。 例如,要向 DateTime 值的 Second 组件添加由特定计时周期数表示的秒数,您可以使用表达式 dateValue.Second + nTicks/Timespan.TicksPerSecond

本节内容:

实例化DateTime对象
DateTime值及其字符串表示形式
将字符串转换为datetime值
版本的注意事项
DateTime值
DateTime运算
DateTime 与 TimeSpan
COM互操作注意事项

实例化DateTime对象

可以通过以下任一方式创建新的 DateTime 值:

  • 调用 DateTime 构造函数的任意重载,该构造函数用于指定日期和时间值的特定元素(例如,年、月、日或计时周期数)。 下面的语句演示如何调用某一 DateTime 构造函数来创建具有特定年、月、日、小时、分钟和秒的日期。

    
    DateTime date1 = new DateTime(2008, 5, 1, 8, 30, 52);
    
    
    
  • 使用任何编译器特定的语法声明日期和时间值。 例如,下面的 Visual Basic 语句初始化一个新的 DateTime 值。

    
    Dim date1 As Date = #5/1/2008 8:30:52AM#
    
    
    
  • DateTime 对象分配属性或方法所返回的日期和时间值。 下面的示例将当前日期和时间、当前协调世界时 (UTC) 日期和时间以及当前日期分别分配给三个新的 DateTime 变量。

    
    DateTime date1 = DateTime.Now;
    DateTime date2 = DateTime.UtcNow;
    DateTime date3 = DateTime.Today;
    
    
    
  • 分析日期和时间值的字符串表示形式。 Parse ParseExactTryParseTryParseExact 方法均可将字符串转换为其等效的日期和时间值。 下面的示例使用 Parse 方法分析字符串并将它转换为 DateTime 值。

    
    string dateString = "5/1/2008 8:30:52 AM";
    DateTime date1 = DateTime.Parse(dateString, 
                              System.Globalization.CultureInfo.InvariantCulture); 
    
    
    

    请注意,TryParseTryParseExact 方法除了执行转换以外,还指示特定字符串是否包含 DateTime 值的有效表示形式。

  • 通过调用 DateTime 结构的隐式默认构造函数。(有关值类型的隐式默认构造函数的详细信息,请参见值类型(C# 参考)。)近似等效项(对于支持它的编译器)声明 DateTime 值,而不为其显式分配日期和时间。 下面的示例以 C# 和 Visual Basic 演示对 DateTime 隐式默认构造函数的调用,并以 Visual Basic 演示不分配值的 DateTime 变量声明。

    
    DateTime dat1 = new DateTime();
    // The following method call displays 1/1/0001 12:00:00 AM.
    Console.WriteLine(dat1.ToString(System.Globalization.CultureInfo.InvariantCulture));
    // The following method call displays True.
    Console.WriteLine(dat1.Equals(DateTime.MinValue));
    
    
    

DateTime值及其字符串表示形式

在内部,所有 DateTime 值都表示为从 0001 年 1 月 1 日午夜 12:00:00 以来所经历的计时周期数(100 纳秒间隔的个数)。 实际的 DateTime 的值与在用户界面元素中显示或者写入文件时显示的方式无关。 DateTime 值的外观是格式设置操作的结果。 格式设置是将值转换为其字符串表示形式的过程。

由于日期和时间值的外观取决于区域性、国际标准、应用程序要求及个人偏好等因素,因此 DateTime 结构通过其 ToString 方法的重载在日期和时间值的格式设置方面提供了高度的灵活性。 默认的 DateTime.ToString() 方法使用当前区域性的短日期和长时间模式返回日期和时间值的字符串表示形式。 下面的示例使用默认的 DateTime.ToString() 方法来显示使用 en-US 区域性(即运行此示例的计算机上的当前区域性)的短日期和长时间模式的日期和时间。


DateTime date1 = new DateTime(2008, 3, 1, 7, 0, 0);
Console.WriteLine(date1.ToString());
// For en-US culture, displays 3/1/2008 7:00:00 AM


DateTime.ToString(IFormatProvider) 方法使用特定区域性的短日期和长时间模式返回日期和时间值的字符串表示形式。 下面的示例使用 DateTime.ToString(IFormatProvider) 方法来显示使用 fr-FR 区域性的短日期和长时间模式的日期和时间。


DateTime date1 = new DateTime(2008, 3, 1, 7, 0, 0);
Console.WriteLine(date1.ToString(System.Globalization.CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays 01/03/2008 07:00:00


DateTime.ToString(String) 方法使用当前区域性的格式设置约定,以标准或自定义格式说明符所定义的格式返回日期和时间的字符串表示形式。 下面的示例使用 DateTime.ToString(String) 方法来显示 en-US 区域性(即运行此示例的计算机上的当前区域性)的完整日期和时间模式。


DateTime date1 = new DateTime(2008, 3, 1, 7, 0, 0);
Console.WriteLine(date1.ToString("F"));
// Displays Saturday, March 01, 2008 7:00:00 AM


DateTime.ToString(String, IFormatProvider) 方法使用特定区域性的格式设置约定,以特定格式说明符所定义的格式返回日期和时间的字符串表示形式。 下面的示例使用 DateTime.ToString(String, IFormatProvider) 方法显示使用 fr-FR 区域性的完整日期和时间模式。


DateTime date1 = new DateTime(2008, 3, 1, 7, 0, 0);
Console.WriteLine(date1.ToString("F", new System.Globalization.CultureInfo("fr-FR")));
// Displays samedi 1 mars 2008 07:00:00


有关以下内容的详细信息格式的 DateTime 值,请参见 标准日期和时间格式字符串自定义日期和时间格式字符串

将字符串转换为datetime值

分析涉及将日期和时间的字符串表示方法为 DateTime 值。 通常,在应用程序中日期和时间字符串有两个不同用法:

  • 它们表示可以采用多种形式,并反映当前区域性或特定区域性的约定的日期和时间。 例如,应用程序可能允许当前区域性为输入日期值的 en-us 作为“12/15/2013 "或“2013 年十二月 15 日”,并允许用户当前区域性为输入日期值的 en GB 为“15/12/2013 "或“2013 年十二月 15 日”的用户。

  • 它们表示的日期和时间的预定义布局。 例如,应用程序可以序列化日期设置为“20130103 "独立运行app的区域性,也可以要求日期输入提供当前区域性的短日期格式。

可以使用 ParseTryParse 方法将可能反映区域性使用的一个常见日期和时间格式 DateTime 值的字符串。 下面的示例演示如何使用 TryParse 将日期字符串以多种不同的区域性特定的格式转换为 DateTime 值。 该示例将当前区域性更改为英语 (英国) 并调用 GetDateTimeFormats() 方法生成一组日期和时间字符串。 然后通过该数组中的每个元素TryParse 方法。 该示例的输出表明,分析方法成功转换每一个区域性特定日期和时间字符串。

可以使用 TryParseTryParseExact 方法将必须与特定格式来 DateTime 值的日期和时间字符串。 您指定所需的格式或格式为分析方法的参数使用一个或多个standard自定义 日期和时间格式字符串。 下面的示例使用 TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) 方法将必须以“yyyyMMdd”格式或“HHmmss”格式转换成 DateTime 值的字符串。

如果要转换的该字符串转换为 DateTime 值无法分析,ParseParseExact 方法将引发异常。 TryParse TryParseExact 方法返回一个布尔值值强制转换是成功还是失败。 由于日期和时间字符串的分析操作中,特别是当用户输入字符串往往失败率高,因为异常处理的成本是高昂的,在性能非常重要的场景应使用 TryParseTryParseExact 方法。

有关以下内容的详细信息分析日期和时间值,请参见 分析日期和时间字符串

版本的注意事项

在 .NET Framework 2.0 版以前,DateTime 结构包含一个 64 位字段,该字段由一个未使用的 2 位字段和一个私有字段 Ticks 串联组成,Ticks 字段是一个 62 位无符号字段,其中包含表示日期和时间的计时周期数。 Ticks 字段的值可通过 Ticks 属性获取。

从 .NET Framework 2.0 开始,DateTime 结构包含一个由私有字段 Kind 和 Ticks 字段串联组成的 64 位字段。 Kind 字段是一个 2 位字段,它指示 DateTime 结构是表示本地时间、协调世界时 (UTC) 还是未指定时区中的时间。 Kind 字段用于执行时区之间的时间转换,但不用于时间的比较或算术运算。 Kind 字段的值可通过 Kind 属性获取。

说明说明

在使用特定时区中的日期和时间值方面,DateTime 结构的一种替代结构是 DateTimeOffset DateTimeOffset 结构将日期和时间信息存储在私有 DateTime 字段中,并将该日期和时间与 UTC 相差的分钟数存储在私有 Int16 字段中。 这使得 DateTimeOffset 值可以反映特定时区中的时间,而 DateTime 值只能明确反映 UTC 时间和本地时区的时间。 有关在使用日期和时间值期间何时使用 DateTime 结构或 DateTimeOffset 结构的论述,请参见在 DateTime、DateTimeOffset 和 TimeZoneInfo 之间进行选择

DateTime值

DateTime 类型的时间值描述通常使用协调世界时 (UTC) 标准来表达,它是格林尼治标准时间 (GMT) 的国际识别名。 协调世界时是在经度零度(即 UTC 原点)测量到的时间。 夏时制不适用于 UTC。

本地时间是相对于特定时区而言。 时区与时区偏移量关联,它是时区从 UTC 原点算起的以小时为单位的偏移量。 此外,本地时间有可能受夏时制影响,夏时制会对日长增加或减少一小时。 因此,本地时间的计算是将时区偏移量加上 UTC,如有必要,再根据夏时制进行调整。 UTC 原点的时区偏移量为零。

UTC 时间适合于计算、比较日期和时间,以及将日期和时间存储在文件中。 本地时间适合于在桌面应用程序的用户界面中显示。 识别时区的应用程序(如许多 Web 应用程序)还需要使用许多其他时区。

如果 DateTime 对象的 Kind 属性为 DateTimeKind.Unspecified,则其未指定表示的时间是本地时间、UTC 时间还是某个其他时区中的时间。

DateTime运算

使用 DateTime 结构的计算(如 AddSubtract)不会修改该结构的值。 相反,计算会返回新的 DateTime 结构,其值为计算结果。

时区之间(例如,UTC 和本地时间之间,或者一个时区和另一个时区之间)的转换运算会考虑夏时制,但是算术和比较运算无需考虑。

DateTime 结构本身不太支持从一个时区转换至另一个时区。 您可以使用 ToLocalTime 方法将 UTC 转换为本地时间,也可以使用 ToUniversalTime 方法从本地时间转换为 UTC。 但是,整套的时区转换方法是在 TimeZoneInfo 类中提供的。 使用这些方法,可以将世界上任一时区中的时间转换为任何其他时区中的时间。

DateTime 对象的计算和比较仅当这些对象表示同一时区中的时间时才有意义。 可以使用 TimeZoneInfo 对象表示 DateTime 值的时区,尽管二者为松耦合。(也就是说,除 Kind 属性外,DateTime 对象没有这样的属性:该属性返回的对象表示日期和时间值的时区。)因此,在识别时区的应用程序中,必须依赖某些外部机制来确定创建 DateTime 对象时所在的时区。 例如,可以使用结构来包装 DateTime 值以及表示 TimeZoneInfo 值的时区的 DateTime 对象。 有关在 DateTime 值的计算和比较中使用 UTC 的详细信息,请参见使用日期和时间执行算术运算

每个 DateTime 成员都隐式使用公历执行其操作,例外是指定日历的构造函数以及使用从 IFormatProvider 派生的参数(如 System.Globalization.DateTimeFormatInfo)的方法,该参数隐式指定日历。

DateTime 类型中的成员所执行的运算会考虑闰年和月中天数等细节。

带有 DateTime 值的其他两个常见操作涉及将日期和时间值的来回转换为字符串表示方法。 DateTime 值转换为其字符串表示方法的进程是格式设置操作;有关格式设置的更多信息,请参见 日期时间值及其字符串表示方法 转换字符串表示方法日期和时间处理为 DateTime 值是分析操作;有关分析的更多信息,请参见 将字符串转换为 datetime 值

DateTime 与 TimeSpan

DateTime 值类型与 TimeSpan 值类型的差异在于 DateTime 表示时间上的一刻,而 TimeSpan 表示时间间隔。 例如,这意味着将 DateTime 的一个实例与另一个实例相减可以获得表示这两个实例之间的时间间隔的 TimeSpan 对象。 或者,将一个正 TimeSpan 与当前 DateTime 相加可以获得表示将来日期的 DateTime 值。

可以向 DateTime 对象增加或减少一个时间间隔。 时间间隔可为负,也可为正,可以用刻度或秒等为单位表示,也可表示为 TimeSpan 对象。

COM互操作注意事项

一个 DateTime 值传输到 COM 应用程序,然后传回托管应用程序,这称为往返。 但是,仅指定时间的 DateTime 值不会按预期的那样往返。

如果仅往返一次,例如下午3点,最终日期和时间是公元1899年12月30日下午3点,而不是公元0001年1月1日下午3点。之所以发生此情况是因为当仅指定时间时,.NET Framework 和 COM 都采用默认日期。 但是,COM系统假定1899年12月30日为一个基础日期,而.NET Framework假定公元0001年1月1日为一个基础日期。

当只有时间从 .NET Framework 传递到 COM 时,其间执行了特殊的处理,将时间转换为 COM 所使用的格式。 如果只有时间从 COM 传递到 .NET Framework,则不执行特殊处理,因为这会破坏 1899 年 12 月 30 日当天或之前的合法日期和时间。 这也意味着如果某个日期从 COM 开始其往返,.NET Framework 和 COM 将保留该日期。

.NET Framework 和 COM 的这一行为意味着如果您的应用程序往返的 DateTime 仅指定了时间,则您的应用程序必须记得修改或忽略来自最终的 DateTime 对象的错误日期。

下面的示例演示如何比较大致等效的 DateTime 值,将它们声明为"相等"时接受很小的差异。


using System;

class DateTimeTester 
{
   static bool RoughlyEquals(DateTime time, DateTime timeWithWindow, int windowInSeconds, int frequencyInSeconds)
   {
      long delta = (long)((TimeSpan)(timeWithWindow - time)).TotalSeconds 
                                                     % frequencyInSeconds;

      delta = delta > windowInSeconds ? frequencyInSeconds - delta : delta;

      return Math.Abs(delta) < windowInSeconds;
	}

	public static void Main() 
	{
      int window = 10;
      int freq = 60 * 60 * 2; // 2 hours;

      DateTime d1 = DateTime.Now;

      DateTime d2 = d1.AddSeconds(2 * window);
      DateTime d3 = d1.AddSeconds(-2 * window);
      DateTime d4 = d1.AddSeconds(window / 2);
      DateTime d5 = d1.AddSeconds(-window / 2);

      DateTime d6 = (d1.AddHours(2)).AddSeconds(2 * window);
      DateTime d7 = (d1.AddHours(2)).AddSeconds(-2 * window);
      DateTime d8 = (d1.AddHours(2)).AddSeconds(window / 2);
      DateTime d9 = (d1.AddHours(2)).AddSeconds(-window / 2);

      Console.WriteLine("d1 ({0}) ~= d1 ({1}): {2}",
                        d1, d1, RoughlyEquals(d1, d1, window, freq));
      Console.WriteLine("d1 ({0}) ~= d2 ({1}): {2}", 
                        d1, d2, RoughlyEquals(d1, d2, window, freq));
      Console.WriteLine("d1 ({0}) ~= d3 ({1}): {2}", 
                        d1, d3, RoughlyEquals(d1, d3, window, freq));
      Console.WriteLine("d1 ({0}) ~= d4 ({1}): {2}", 
                        d1, d4, RoughlyEquals(d1, d4, window, freq));
      Console.WriteLine("d1 ({0}) ~= d5 ({1}): {2}", 
                        d1, d5, RoughlyEquals(d1, d5, window, freq));

      Console.WriteLine("d1 ({0}) ~= d6 ({1}): {2}", 
                        d1, d6, RoughlyEquals(d1, d6, window, freq));
      Console.WriteLine("d1 ({0}) ~= d7 ({1}): {2}", 
                        d1, d7, RoughlyEquals(d1, d7, window, freq));
      Console.WriteLine("d1 ({0}) ~= d8 ({1}): {2}", 
                        d1, d8, RoughlyEquals(d1, d8, window, freq));
      Console.WriteLine("d1 ({0}) ~= d9 ({1}): {2}", 
                        d1, d9, RoughlyEquals(d1, d9, window, freq));
	}
}
// The example displays output similar to the following:
//    d1 (1/28/2010 9:01:26 PM) ~= d1 (1/28/2010 9:01:26 PM): True
//    d1 (1/28/2010 9:01:26 PM) ~= d2 (1/28/2010 9:01:46 PM): False
//    d1 (1/28/2010 9:01:26 PM) ~= d3 (1/28/2010 9:01:06 PM): False
//    d1 (1/28/2010 9:01:26 PM) ~= d4 (1/28/2010 9:01:31 PM): True
//    d1 (1/28/2010 9:01:26 PM) ~= d5 (1/28/2010 9:01:21 PM): True
//    d1 (1/28/2010 9:01:26 PM) ~= d6 (1/28/2010 11:01:46 PM): False
//    d1 (1/28/2010 9:01:26 PM) ~= d7 (1/28/2010 11:01:06 PM): False
//    d1 (1/28/2010 9:01:26 PM) ~= d8 (1/28/2010 11:01:31 PM): True
//    d1 (1/28/2010 9:01:26 PM) ~= d9 (1/28/2010 11:01:21 PM): True


.NET Framework

受以下版本支持:4.5.2、4.5.1、4.5、4、3.5、3.0、2.0、1.1、1.0

.NET Framework Client Profile

受以下版本支持:4、3.5 SP1

可移植类库

受以下版本支持:可移植类库

适用于 Windows 应用商店应用的 .NET

受以下版本支持:Windows 8

适用于 Windows Phone 应用的 .NET

受以下版本支持:Windows Phone 8、Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008(不支持服务器核心角色), Windows Server 2008 R2(支持带 SP1 或更高版本的服务器核心角色;不支持 Itanium)

.NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参阅.NET Framework 系统要求

此类型的所有成员都是线程安全的。 看似修改了实例状态的成员实际上返回一个用新值实例化的新实例。 正如对任何其他类型一样,对于包含此类型的实例的共享变量,也必须通过锁定来保护对其进行的读写,以保证实现线程安全。

警告说明警告

在所有的硬件平台上都分配该类型的一个实例不是线程安全的,因为该实例的二进制表示形式可能太大,无法在单个原子操作中分配。

本文是否对您有所帮助?
(1500 个剩余字符)
感谢您的反馈

社区附加资源

显示:
© 2015 Microsoft