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

方法描述

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

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

public static DateTimeOffset ConvertTimeBySystemTimeZoneId(
	DateTimeOffset dateTimeOffset,
	string destinationTimeZoneId
)

参数/返回值

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

提示和注释

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

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

由于 dateTimeOffset 参数将日期和时间与该时间和协调世界时 (UTC) 的偏移量一起表示,因此它不能表示不明确的时间或无效时间。

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

在将 dateTimeOffset 值转换为目标时区时间的过程中,此方法会考虑目标时区中所有有效的调整规则。

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

System.TimeZoneInfo.ConvertTimeBySystemTimeZoneId 方法 (DateTimeOffset, 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 系统要求。