日期、时间和时区 Dates, times, and time zones

本文内容

除基本 DateTime 结构外,.NET 还提供以下支持处理时区的类型:

使用此类处理系统的本地时区和协调世界时 (UTC) 区域。TimeZone 类的功能在很大程度上已被 TimeZoneInfo 类取代。

此类可用于处理系统上预定义的任何时区、创建新时区,以及将日期和时间从一个时区轻松转换成另一个时区。对于新的开发,使用 TimeZoneInfo 类而不使用 TimeZone 类。

使用此结构处理已知 UTC 偏移量(或差值)的日期和时间。DateTimeOffset 结构结合了日期和时间值与该时间的 UTC 偏移量。由于其与 UTC 间的关系,单独的日期和时间值可以明确地识别单个时间点。这使 DateTimeOffset 值比 DateTime 值更容易从一台计算机移植到另一台计算机。

文档的此部分提供处理时区和创建时区识别应用程序所需的信息,时区识别程序可将日期和时间从一个时区转换到另一时区。

本节内容In this section

时区概述讨论了创建时区识别应用程序时涉及的术语、概念以及问题。

在 DateTime、DateTimeOffset、TimeSpan 和 TimeZoneInfo 间进行选择讨论处理日期和时间数据时,应何时使用 DateTimeDateTimeOffsetTimeZoneInfo 类型。

查找本地系统上定义的时区介绍如何枚举在本地系统上找到的时区。

如何:枚举计算机上存在的时区举例说明枚举在计算机注册表中定义的时区,以及允许用户从列表选择一个预定义时区。

如何:访问预定义的 UTC 和本地时区对象介绍如何访问协调世界时和本地时区。

如何:实例化 TimeZoneInfo 对象介绍如何实例化本地系统注册表中的 TimeZoneInfo 对象。

实例化 DateTimeOffset 对象讨论实例化 DateTimeOffset 对象的方式,以及可以将 DateTime 值转化为 DateTimeOffset 值的方法。

如何:创建不含调整规则的时区介绍如何创建不支持夏令时转换规则的自定义时区。

如何:创建含调整规则的时区介绍如何创建支持一个或多个夏令时转换规则的自定义时区。

保存和还原时区介绍 TimeZoneInfo 提供的时区数据序列化和反序列化支持,并通过一些应用场景介绍了如何使用这些功能。

如何:将时区保存到嵌入的资源中介绍如何创建自定义时区,并将其信息保存到资源文件中。

如何:从嵌入的资源还原时区介绍如何实例化已保存到嵌入的资源文件中的自定义时区。

使用日期和时间执行算术运算讨论加上,减去和比较 DateTimeDateTimeOffset 值时会出现的问题。

如何:在日期和时间算法中使用时区讨论如何执行反映时区调整规则的日期和时间算术。

在 DateTime 与 DateTimeOffset 之间进行转换介绍如何在 DateTimeDateTimeOffset 值间进行转换。

在各时区之间转换时间介绍如何将时间从一个时区转换到另一个时区。

如何:解决不明确时间介绍如何通过将不明确时间映射到时区标准时间解决该时间。

如何:让用户解决不明确时间介绍如何让用户确定不明确本地时间与协调世界时之间的映射。

参考Reference

System.TimeZoneInfo