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