System.TimeZoneInfo.ConvertTimeBySystemTimeZoneId 方法 (DateTime, String)

方法描述

根据时区标识符将时间转换为另一时区中的时间。

语法定义(C# System.TimeZoneInfo.ConvertTimeBySystemTimeZoneId 方法 (DateTime, String) 的用法)

public static DateTime ConvertTimeBySystemTimeZoneId(
	DateTime dateTime,
	string destinationTimeZoneId
)

参数/返回值

参数值/返回值 参数类型/返回类型 参数描述/返回描述
dateTime System-DateTime 要转换的日期和时间。
destinationTimeZoneId System-String 目标时区的标识符。
返回值 System.DateTime 目标时区的日期和时间。

提示和注释

执行转换时,ConvertTimeBySystemTimeZoneId 方法将有效应用 destinationTimeZoneId 时区中的任何调整规则。

此方法重载大致相当于调用 ConvertTime(DateTime, TimeZoneInfo) 方法,区别是前者允许您通过其标识符而不是对象引用来指定目标时区。 如果您必须转换时间而不检索与该时间相对应的时区对象,并且不需要知道转换后的时间是标准时间还是夏时制时间,则此方法非常有用。

ConvertTimeBySystemTimeZoneId(DateTime, String) 方法通过 dateTime 参数的 Kind 属性值确定源时区,如下表所示。

Kind 属性值

源时区

方法行为

DateTimeKind.Local

Local

将本地时间转换为 destinationTimeZone 中的时间。

DateTimeKind.Utc

Utc

将协调世界时 (UTC) 转换为 destinationTimeZone 中的时间。

DateTimeKind.Unspecified

假定为 Local。

将本地时间转换为 destinationTimeZone 中的时间。

如下表所示设置返回的 DateTime 值的 Kind 属性。

Condition

返回的 Kind 属性值

destinationTimeZone 为 TimeZoneInfo.Utc.Id。

DateTimeKind.Utc

任何其他 destinationTimeZone 值。

DateTimeKind.Unspecified

如果 dateTime 参数值为不明确的本地时间,则将该时间解释为标准时间。 如果 dateTime 参数为无效的本地时间,则此方法会引发 ArgumentException。

如果 dateTime 的转换结果为早于 DateTime.MinValue 或晚于 DateTime.MaxValue 的日期和时间值,则此方法分别返回 DateTime.MinValue 或 DateTime.MaxValue。

此方法检索标识符由 destinationTimeZoneId 参数从注册表指定的时区。 它不能检索使用 CreateCustomTimeZone 方法创建的时区对象。 若要匹配成功,destinationTimeZoneId 参数必须在长度上与时区的注册表项完全对应,但与大小写无关。即,destinationTimeZoneId 与时区标识符的比较不区分大小写。

System.TimeZoneInfo.ConvertTimeBySystemTimeZoneId 方法 (DateTime, String)例子


异常

异常 异常描述
ArgumentNullException destinationTimeZoneId 为 null。
InvalidTimeZoneException 已找到时区标识符,但注册表数据已损坏。
SecurityException 进程没有读取包含时区信息的注册表项所需的权限。
TimeZoneNotFoundException 在本地系统上找不到 destinationTimeZoneId 标识符。

命名空间

namespace: System

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

版本信息

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