时间和时区
更新:2007 年 11 月
除了基本的 DateTime 结构外,.NET Framework 还提供了下列类来支持对时区的处理:
-
使用此类可以处理系统的本地时区和协调世界时 (UTC) 区域。 TimeZone 类的大部分功能已由 TimeZoneInfo 类取代。
-
使用此类可以处理系统上预定义的任何时区、创建新时区,以及轻松地将日期和时间从一个时区转换到另一个时区。在新开发过程中,请使用 TimeZoneInfo 类代替 TimeZone 类。
-
使用此结构可以处理 UTC 偏移量(即差值)已知的日期和时间。DateTimeOffset 结构将日期和时间值与该时间的 UTC 偏移量组合在一起。由于它与 UTC 存在这种关系,因此单个日期和时间值可以明确地标识单个时间点。这就使得 DateTimeOffset 值比 DateTime 值在不同计算机之间具有更好的可移植性。
本节提供处理时区以及创建时区识别应用程序(可将日期和时间从一个时区转换到另一个时区)时所需的信息。
本节内容
讨论创建时区识别应用程序中涉及的术语、概念和问题。
在 DateTime、DateTimeOffset 和 TimeZoneInfo 之间进行选择
讨论在处理日期和时间数据时应于何时使用 DateTime、DateTimeOffset 和 TimeZoneInfo 类型。
描述如何枚举本地系统上的时区。
提供枚举计算机注册表中定义的时区的示例,以及允许用户从列表中选择预定义时区的示例。
描述如何访问协调世界时和本地时区。
描述如何实例化本地系统注册表中的 TimeZoneInfo 对象。
讨论如何实例化 DateTimeOffset 对象以及如何将 DateTime 值转换为 DateTimeOffset 值。
描述如何创建不支持与夏令时来回转换的自定义时区。
描述如何创建支持与夏令时进行一种或多种转换的自定义时区。
描述对序列化和反序列化时区数据的 TimeZoneInfo 支持,并阐释可以使用这些数据的某些方案。
描述如何创建自定义时区并将其信息保存在资源文件中。
描述如何实例化已保存到嵌入的资源文件中的自定义时区。
讨论对 DateTime 和 DateTimeOffset 值执行加、减和比较运算时涉及的问题。
讨论如何执行反映时区调整规则的日期和时间运算。
在 DateTime 与 DateTimeOffset 之间进行转换
描述如何在 DateTime 和 DateTimeOffset 值之间进行转换。
描述如何将时间从一个时区转换到另一个时区。
描述如何通过将不明确的时间映射到时区的标准时间来解析它。
描述如何让用户确定不明确的本地时间与协调世界时之间的映射。