导出 (0) 打印
全部展开
此文章由机器翻译。 将光标移到文章的句子上,以查看原文。 更多信息。
译文
原文

DateTimeOffset 结构

表示一个时间点,通常以相对于协调世界时 (UTC) 的日期和时间来表示。

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

[SerializableAttribute]
public struct DateTimeOffset : IComparable, 
	IFormattable, ISerializable, IDeserializationCallback, IComparable<DateTimeOffset>, 
	IEquatable<DateTimeOffset>

DateTimeOffset 类型公开以下成员。

  名称说明
公共方法受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持DateTimeOffset(DateTime)使用指定的 DateTime 值初始化 DateTimeOffset 结构的新实例。
公共方法受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持DateTimeOffset(DateTime, TimeSpan)使用指定的 DateTime 值和偏移量初始化 DateTimeOffset 结构的新实例。
公共方法受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持DateTimeOffset(Int64, TimeSpan)使用指定的计时周期数和偏移量初始化 DateTimeOffset 结构的新实例。
公共方法受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持DateTimeOffset(Int32, Int32, Int32, Int32, Int32, Int32, TimeSpan)使用指定的年、月、日、小时、分钟、秒和偏移量初始化 DateTimeOffset 结构的新实例。
公共方法受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持DateTimeOffset(Int32, Int32, Int32, Int32, Int32, Int32, Int32, TimeSpan)使用指定的年、月、日、小时、分钟、秒、毫秒和偏移量初始化 DateTimeOffset 结构的新实例。
公共方法DateTimeOffset(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar, TimeSpan)用指定日历的指定年、月、日、小时、分钟、秒、毫秒和偏移量初始化 DateTimeOffset 结构的新实例。
页首

  名称说明
公共属性受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Date获取 DateTime 值,该值表示当前 DateTimeOffset 对象的日期组成部分。
公共属性受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持DateTime获取 DateTime 值,该值表示当前 DateTimeOffset 对象的日期和时间。
公共属性受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Day获取由当前 DateTimeOffset 对象所表示的月中的某一天。
公共属性受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持DayOfWeek获取由当前 DateTimeOffset 对象所表示的周中的某一天。
公共属性受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持DayOfYear获取由当前 DateTimeOffset 对象所表示的年中的某一天。
公共属性受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Hour获取由当前 DateTimeOffset 对象所表示的时间的小时组成部分。
公共属性受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持LocalDateTime获取 DateTime 值,该值表示当前 DateTimeOffset 对象的本地日期和时间。
公共属性受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Millisecond获取由当前 DateTimeOffset 对象所表示的时间的毫秒组成部分。
公共属性受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Minute获取由当前 DateTimeOffset 对象所表示的时间的分钟组成部分。
公共属性受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Month获取由当前 DateTimeOffset 对象所表示的日期的月份组成部分。
公共属性静态成员受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Now获取一个 DateTimeOffset 对象,该对象设置为当前计算机上的当前日期和时间,偏移量设置为本地时间与协调世界时 (UTC) 之间的偏移量。
公共属性受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Offset获取与协调世界时 (UTC) 之间的时间偏移量。
公共属性受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Second获取由当前 DateTimeOffset 对象所表示的时钟时间的秒组成部分。
公共属性受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Ticks获取计时周期数,此计时周期数表示时钟时间中当前 DateTimeOffset 对象的日期和时间。
公共属性受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持TimeOfDay获取当前 DateTimeOffset 对象的日时。
公共属性受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持UtcDateTime获取一个 DateTime 值,该值表示当前 DateTimeOffset 对象的协调世界时 (UTC) 日期和时间。
公共属性静态成员受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持UtcNow获取一个 DateTimeOffset 对象,其日期和时间设置为当前的协调世界时 (UTC) 日期和时间,其偏移量为 TimeSpan.Zero
公共属性受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持UtcTicks获取表示当前 DateTimeOffset 对象的协调世界时 (UTC) 日期和时间的计时周期数。
公共属性受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Year获取由当前 DateTimeOffset 对象所表示的日期的年份组成部分。
页首

  名称说明
公共方法受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Add将一个指定的时间间隔添加到 DateTimeOffset 对象。
公共方法受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持AddDays将由整数和小数部分组成的指定天数与当前的 DateTimeOffset 对象相加。
公共方法受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持AddHours将由整数和小数部分组成的指定小时数与当前的 DateTimeOffset 对象相加。
公共方法受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持AddMilliseconds将指定的毫秒数与当前 DateTimeOffset 对象相加。
公共方法受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持AddMinutes将由整数和小数部分组成的指定分钟数与当前的 DateTimeOffset 对象相加。
公共方法受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持AddMonths将指定的月数与当前 DateTimeOffset 对象相加。
公共方法受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持AddSeconds将由整数和小数部分组成的指定秒数与当前的 DateTimeOffset 对象相加。
公共方法受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持AddTicks将指定的计时周期数与当前 DateTimeOffset 对象相加。
公共方法受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持AddYears将指定的年数与当前 DateTimeOffset 对象相加。
公共方法静态成员受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Compare对两个 DateTimeOffset 对象进行比较,并指明第一个对象是早于、等于还是晚于第二个对象。
公共方法受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持CompareTo将当前的 DateTimeOffset 对象与指定的 DateTimeOffset 对象进行比较,并指明当前对象是早于、等于还是晚于另一个 DateTimeOffset 对象。
公共方法受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Equals(DateTimeOffset)确定当前的 DateTimeOffset 对象是否与指定的 DateTimeOffset 对象表示同一时间点。
公共方法受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Equals(Object)确定 DateTimeOffset 对象是否与指定的对象表示同一时间点。 (重写 ValueType.Equals(Object)。)
公共方法静态成员受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Equals(DateTimeOffset, DateTimeOffset)确定两个指定的 DateTimeOffset 对象是否表示同一时间点。
公共方法受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持EqualsExact确定当前的 DateTimeOffset 对象与指定的 DateTimeOffset 对象是否表示同一时间并且是否具有相同的偏移量。
公共方法静态成员受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持FromFileTime将指定的 Windows 文件时间转换为等效的本地时间。
公共方法受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持GetHashCode返回当前 DateTimeOffset 对象的哈希代码。 (重写 ValueType.GetHashCode()。)
公共方法受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持GetType获取当前实例的 Type (继承自 Object。)
公共方法静态成员受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Parse(String)将日期、时间和偏移量的指定字符串表示形式转换为其等效的 DateTimeOffset
公共方法静态成员受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Parse(String, IFormatProvider)使用指定的区域性特定格式信息,将日期和时间的指定字符串表示形式转换为其等效的 DateTimeOffset
公共方法静态成员受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Parse(String, IFormatProvider, DateTimeStyles)使用指定的区域性特定格式信息和格式设置样式将日期和时间的指定字符串表示形式转换为其等效的 DateTimeOffset
公共方法静态成员受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持ParseExact(String, String, IFormatProvider)使用指定的区域性特定格式信息,将日期和时间的指定字符串表示形式转换为其等效的 DateTimeOffset 字符串表示形式的格式必须与指定的格式完全匹配。
公共方法静态成员受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持ParseExact(String, String, IFormatProvider, DateTimeStyles)使用指定的格式、区域性特定格式信息和样式将日期和时间的指定字符串表示形式转换为其等效的 DateTimeOffset 字符串表示形式的格式必须与指定的格式完全匹配。
公共方法静态成员受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持ParseExact(String, String[], IFormatProvider, DateTimeStyles)使用指定的格式、区域性特定格式信息和样式将日期和时间的指定字符串表示形式转换为其等效的 DateTimeOffset 字符串表示形式的格式必须与一种指定的格式完全匹配。
公共方法受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Subtract(DateTimeOffset)从当前的 DateTimeOffset 对象中减去表示特定日期和时间的 DateTimeOffset 值。
公共方法受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Subtract(TimeSpan)从当前的 DateTimeOffset 对象中减去指定的时间间隔。
公共方法受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持ToFileTime将当前 DateTimeOffset 对象的值转换为 Windows 文件时间。
公共方法受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持ToLocalTime将当前的 DateTimeOffset 对象转换为表示本地时间的 DateTimeOffset 对象。
公共方法受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持ToOffset将当前 DateTimeOffset 对象的值转换为偏移量值所指定的日期和时间。
公共方法受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持ToString()将当前 DateTimeOffset 对象的值转换为其等效的字符串表示形式。 (重写 ValueType.ToString()。)
公共方法受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持ToString(IFormatProvider)使用指定的区域性特定格式设置信息将当前 DateTimeOffset 对象的值转换为它的等效字符串表示形式。
公共方法受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持ToString(String)使用指定的格式将当前 DateTimeOffset 对象的值转换为它的等效字符串表示形式。
公共方法受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持ToString(String, IFormatProvider)使用指定的格式和区域性特定格式信息将当前 DateTimeOffset 对象的值转换为它的等效字符串表示形式。
公共方法受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持ToUniversalTime将当前的 DateTimeOffset 对象转换为一个表示协调世界时 (UTC) 的 DateTimeOffset 值。
公共方法静态成员受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持TryParse(String, DateTimeOffset)尝试将日期和时间的指定字符串表示形式转换为它的等效 DateTimeOffset,并返回一个指示转换是否成功的值。
公共方法静态成员受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持TryParse(String, IFormatProvider, DateTimeStyles, DateTimeOffset)尝试将日期和时间的指定字符串表示形式转换为它的等效 DateTimeOffset,并返回一个指示转换是否成功的值。
公共方法静态成员受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTimeOffset)使用指定的格式、区域性特定格式信息和样式将日期和时间的指定字符串表示形式转换为其等效的 DateTimeOffset 字符串表示形式的格式必须与指定的格式完全匹配。
公共方法静态成员受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTimeOffset)使用指定的格式数组、区域性特定格式信息和样式将日期和时间的指定字符串表示形式转换为其等效的 DateTimeOffset 字符串表示形式的格式必须与一种指定的格式完全匹配。
页首

  名称说明
公共运算符静态成员受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Addition将指定的时间间隔与具有指定的日期和时间的 DateTimeOffset 对象相加,产生一个具有新的日期和时间的 DateTimeOffset 对象。
公共运算符静态成员受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Equality确定两个指定的 DateTimeOffset 对象是否表示同一时间点。
公共运算符静态成员受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持GreaterThan确定一个指定的 DateTimeOffset 对象是否大于(或晚于)另一个指定的 DateTimeOffset 对象。
公共运算符静态成员受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持GreaterThanOrEqual确定一个指定的 DateTimeOffset 对象是大于还是等于另一个指定的 DateTimeOffset 对象。
公共运算符静态成员受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Implicit(DateTime to DateTimeOffset)定义从 DateTime 对象到 DateTimeOffset 对象的隐式转换。
公共运算符静态成员受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Inequality确定两个指定的 DateTimeOffset 对象是否表示不同的时间点。
公共运算符静态成员受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持LessThan确定一个指定的 DateTimeOffset 对象是否小于另一个指定的 DateTimeOffset 对象。
公共运算符静态成员受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持LessThanOrEqual确定一个指定的 DateTimeOffset 对象是否小于另一个指定的 DateTimeOffset 对象。
公共运算符静态成员受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Subtraction(DateTimeOffset, DateTimeOffset)从一个 DateTimeOffset 对象中减去另一个对象并生成时间间隔。
公共运算符静态成员受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持Subtraction(DateTimeOffset, TimeSpan)从指定的日期和时间减去指定的时间间隔,并生成新的日期和时间。
页首

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

  名称说明
显式接口实现私有方法受 可移植类库 支持受 适用于 Windows 应用商店应用的 .NET 支持IComparable.CompareTo基础结构。将当前 DateTimeOffset 对象的值与相同类型的另一个对象进行比较。
显式接口实现私有方法IDeserializationCallback.OnDeserialization基础结构。在对象的反序列化完成时运行。
显式接口实现私有方法ISerializable.GetObjectData基础结构。使用序列化当前 DateTimeOffset 对象所需的数据来填充 SerializationInfo 对象。
页首

DateTimeOffset 结构包括一个 DateTime 值以及一个 Offset 属性,该属性用于确定当前 DateTimeOffset 实例的日期和时间与协调世界时 (UTC) 之间的差值。 因为 DateTimeOffset 结构确切地定义了相对于 UTC 的日期和时间,所以它不包括 Kind 成员,这一点与 DateTime 结构相同。 它采用 UTC 范围在公元(基督纪元) 0001 年 1 月 1 日午夜 12:00:00 到公元 9999 年 12 月 31 日晚上 11:59:59 之间的值来表示日期和时间。(公元)。

DateTimeOffset 值的时间组件以 100 纳秒为单位(该单位称为计时周期)进行计量,而特定日期(公元)在 GregorianCalendar 日历中。 DateTimeOffset 值始终在显式或默认日历的上下文中表示。 由闰秒引起的滴答不会包含在滴答总数中。

说明说明

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

虽然 DateTimeOffset 值包括一个偏移量,但它不是一个具有完全时区识别能力的数据结构。 虽然与 UTC 之间的偏移量是时区的一个特征,但它没有清楚地确定时区。 多个时区可以具有相同的与 UTC 之间的偏移量,不仅如此,而且如果某一个时区采用夏令时,则该时区的偏移量将会发生变化。 也就是说,DateTimeOffset 值一与其时区失去关联,就无法再明确地重新与其原始时区发生关联。

因为 DateTimeOffset 是一种结构,所以已经声明但未另外进行初始化的 DateTimeOffset 对象包含其每个成员字段的默认值。 也就是说,其 DateTime 属性被设置为 DateTimeOffset.MinValue,其 Offset 被设置为 TimeSpan.Zero

您可以创建一个新的 DateTimeOffset 值,方法是调用其构造函数的任何重载(与 DateTime 结构的重载构造函数相类似)。 还可以通过为其分配一个 DateTime 值来创建一个新的 DateTimeOffset 值。 这是一个隐式转换;它不需要强制转换运算符(在 C# 中)或对转换方法的调用(在 Visual Basic 中)。 您也可以从日期和时间的字符串表示形式中初始化 DateTimeOffset 值,方法是调用一些静态字符串分析方法,其中包括 ParseParseExactTryParseTryParseExact

DateTimeOffset 结构的成员提供以下方面的功能:

  • 日期和时间算术。

    可以加上或减去特定 DateTimeOffset 值中的日期或时间间隔。 DateTimeOffset 值的算术运算与 DateTime 值的算术运算不同,前者在返回结果时将针对时间偏移量差异进行相应调整。 例如,下面的代码使用 DateTime 变量从当前的 UTC 时间中减去当前的本地时间。 然后,该代码使用 DateTimeOffset 变量执行相同的操作。 DateTime 值进行减法运算将返回本地时区与 UTC 之间的差值,而用 DateTimeOffset 值进行减法运算将返回 TimeSpan.Zero

    
    using System;
    
    public class DateArithmetic
    {
       public static void Main()
       {
          DateTime date1, date2;
          DateTimeOffset dateOffset1, dateOffset2;
          TimeSpan difference;
    
          // Find difference between Date.Now and Date.UtcNow
          date1 = DateTime.Now;
          date2 = DateTime.UtcNow;
          difference = date1 - date2;
          Console.WriteLine("{0} - {1} = {2}", date1, date2, difference);
    
          // Find difference between Now and UtcNow using DateTimeOffset
          dateOffset1 = DateTimeOffset.Now;
          dateOffset2 = DateTimeOffset.UtcNow;
          difference = dateOffset1 - dateOffset2;
          Console.WriteLine("{0} - {1} = {2}", 
                            dateOffset1, dateOffset2, difference);
          // If run in the Pacific Standard time zone on 4/2/2007, the example
          // displays the following output to the console:
          //    4/2/2007 7:23:57 PM - 4/3/2007 2:23:57 AM = -07:00:00
          //    4/2/2007 7:23:57 PM -07:00 - 4/3/2007 2:23:57 AM +00:00 = 00:00:00                        
       }
    }
    
    
    
  • 类型转换操作。

    可以将 DateTimeOffset 值转换为 DateTime 值,反之亦然。

  • 时间处理和提取操作。

    您可以提取 DateTimeOffset 值的日期或时间。 也可以检索特定的 DateTimeOffset 组成部分的值,例如其年份或月份。

  • 日期和时间转换。

    您可以将任何 DateTimeOffset 值转换为表示另一时区中相同时间点的另一个 DateTimeOffset 值。 但是,时区的调整规则只适用于采用 ToLocalTime 方法的情况,该方法可以将 DateTimeOffset 值转换为本地系统时区中的日期和时间。

  • 日期和时间比较。

    您可以确定任何特定的 DateTimeOffset 值是早于、等于还是晚于另一个 DateTimeOffset 值。 在执行比较之前,所有值都将转换为 UTC。

.NET Framework

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

.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 系统要求

此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

社区附加资源

添加
Microsoft 正在进行一项网上调查,以了解您对 MSDN 网站的意见。 如果您选择参加,我们将会在您离开 MSDN 网站时向您显示该网上调查。

是否要参加?
显示:
© 2014 Microsoft