System.TimeZoneInfo 类

方法描述

表示世界上的任何时区。

语法定义(C# System.TimeZoneInfo 类 的用法)

[SerializableAttribute]
[HostProtectionAttribute(SecurityAction.LinkDemand, MayLeakOnAbort = true)]
public sealed class TimeZoneInfo : IEquatable, 
	ISerializable, IDeserializationCallback

构造函数

构造函数名称 构造函数描述

成员/方法

方法名称 方法描述
ClearCachedData 清除已缓存的时区数据。
ConvertTime(DateTime, TimeZoneInfo) 将时间转换为特定时区的时间。
ConvertTime(DateTimeOffset, TimeZoneInfo) 将时间转换为特定时区的时间。
ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo) 将时间从一个时区转换为另一个时区。
ConvertTimeBySystemTimeZoneId(DateTime, String) 根据时区标识符将时间转换为另一时区中的时间。
ConvertTimeBySystemTimeZoneId(DateTimeOffset, String) 根据时区标识符将时间转换为另一时区中的时间。
ConvertTimeBySystemTimeZoneId(DateTime, String, String) 根据时区标识符将时间从一个时区转换到另一个时区。
ConvertTimeFromUtc 将协调世界时 (UTC) 转换为指定时区中的时间。
ConvertTimeToUtc(DateTime) 将当前日期和时间转换为协调世界时 (UTC)。
ConvertTimeToUtc(DateTime, TimeZoneInfo) 将指定时区中的时间转换为协调世界时 (UTC)。
CreateCustomTimeZone(String, TimeSpan, String, String) 创建带指定标识符的自定义时区、与协调世界时 (UTC) 的偏移量、显示名称以及标准时间显示名称。
CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo.AdjustmentRule[]) 创建带指定标识符的自定义时区、与协调世界时 (UTC) 的偏移量、显示名称、标准时间名称、夏时制名称和夏时制规则。
CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo.AdjustmentRule[], Boolean) 创建带指定标识符的自定义时区、与协调世界时 (UTC) 的偏移量、显示名称、标准时间名称、夏时制名称、夏时制规则以及指示返回的对象是否反映夏时制信息的值。
Equals(Object) 确定指定的 Object 是否等于当前的 Object。 (继承自 Object。)
Equals(TimeZoneInfo) 确定当前的 TimeZoneInfo 对象和另一个 TimeZoneInfo 对象是否相等。
Finalize 允许对象在“垃圾回收”回收之前尝试释放资源并执行其他清理操作。 (继承自 Object。)
FindSystemTimeZoneById 根据其标识符从注册表中检索 TimeZoneInfo 对象。
FromSerializedString 反序列化一个字符串,以重新创建原来已序列化的 TimeZoneInfo 对象。
GetAdjustmentRules 检索应用至当前 TimeZoneInfo 对象的 TimeZoneInfo.AdjustmentRule 对象的数组。
GetAmbiguousTimeOffsets(DateTime) 返回不明确的日期和时间可能映射到的日期和时间的相关信息。
GetAmbiguousTimeOffsets(DateTimeOffset) 返回不明确的日期和时间可能映射到的日期和时间的相关信息。
GetHashCode 用作哈希算法的哈希函数和数据结构(如哈希表)。 (重写 Object.GetHashCode()。)
GetSystemTimeZones 返回时区信息在本地系统上可用的所有时区的已排序集合。
GetType 获取当前实例的 Type。 (继承自 Object。)
GetUtcOffset(DateTime) 计算此时区中的时间与协调世界时 (UTC) 之间针对特定日期和时间的偏移量或差值。
GetUtcOffset(DateTimeOffset) 计算此时区中的时间与协调世界时 (UTC) 之间针对特定日期和时间的偏移量或差值。
HasSameRules 指示当前对象和另一个 TimeZoneInfo 对象是否具有相同的调整规则。
IsAmbiguousTime(DateTime) 确定特定时区中的特定日期和时间是否不明确以及是否可以映射至两个或多个协调世界时 (UTC) 时间。
IsAmbiguousTime(DateTimeOffset) 确定特定时区中的特定日期和时间是否不明确以及是否可以映射至两个或多个协调世界时 (UTC) 时间。
IsDaylightSavingTime(DateTime) 指示指定日期和时间是否处于当前 TimeZoneInfo 对象时区的夏时制范围内。
IsDaylightSavingTime(DateTimeOffset) 指示指定日期和时间是否处于当前 TimeZoneInfo 对象时区的夏时制范围内。
IsInvalidTime 指示特定日期和时间是否无效。
MemberwiseClone 创建当前 Object 的浅表副本。 (继承自 Object。)
ToSerializedString 将当前的 TimeZoneInfo 对象转换为序列化字符串。
ToString 返回当前 TimeZoneInfo 对象的显示名称。 (重写 Object.ToString()。)

提示和注释

时区是使用同一时间的地理区域。

TimeZoneInfo 类对 TimeZone 类进行了显著增强,而后者仅提供有限的功能。

TimeZone 类只识别本地时区,但可以在协调世界时 (UTC) 和本地时间之间转换时间。 TimeZoneInfo 对象可以表示任意时区,且 TimeZoneInfo 类的方法可用于将一个时区的时间转换为其他任意时区的相应时间。 TimeZoneInfo 类的成员支持以下操作:

检索操作系统已定义的时区。

枚举系统上可用的时区。

在不同时区之间转换时间。

创建操作系统尚未定义的新时区。

序列化时区,供以后检索使用。

注意

TimeZoneInfo 类的实例是不可变的。 一旦实例化对象后,就无法修改其值。

您不能使用 new 关键字实例化 TimeZoneInfo 对象。 相反,您必须调用下表所示的 TimeZoneInfo 类的静态成员之一。

静态成员名

说明

CreateCustomTimeZone 方法

使用应用程序提供的数据创建自定义时区。

FindSystemTimeZoneById 方法

根据时区的标识符实例化在系统注册表中定义的时区。

FromSerializedString 方法

反序列化一个字符串值,以重新创建先前已序列化的 TimeZoneInfo 对象。

GetSystemTimeZones 方法

返回 TimeZoneInfo 对象的可枚举的 ReadOnlyCollection,它表示本地系统上可用的所有时区。

Local 属性

实例化表示本地时区的 TimeZoneInfo 对象。

Utc 属性

实例化表示 UTC 时区的 TimeZoneInfo 对象。

可以使用 CreateCustomTimeZone 方法创建在本地系统注册表中未定义的时区。 然后可使用 ToSerializedString 属性将时区对象的信息保存为字符串,该字符串可以以应用程序可访问的某种格式存储。 使用 FromSerializedString 方法可将序列化字符串转换回 TimeZoneInfo 对象。

注意

应用到此类型或成员的 HostProtectionAttribute 特性具有以下 Resources 属性值:MayLeakOnAbort。HostProtectionAttribute 不影响桌面应用程序(桌面应用程序一般通过双击图标、键入命令或在浏览器中输入 URL 启动)。有关更多信息,请参见 HostProtectionAttribute 类或 SQL Server 编程和宿主保护特性。

System.TimeZoneInfo 类例子


继承层次结构

System.Object

System.TimeZoneInfo

命名空间

namespace: System

程序集: mscorlib(在 mscorlib.dll 中)

线程安全

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

版本信息

.NET Framework 受以下版本支持:4、3.5 .NET Framework Client Profile 受以下版本支持:4、3.5 SP1

适用平台

Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。