ConvertTimeBySystemTimeZoneId 方法
ConvertTimeBySystemTimeZoneId 方法 1
ConvertTimeBySystemTimeZoneId 方法 2
ConvertTimeFromUtc 方法
ConvertTimeToUtc 方法
ConvertTimeToUtc 方法 1
CreateCustomTimeZone 方法
CreateCustomTimeZone 方法 1
CreateCustomTimeZone 方法 2
Equals 方法 1
FindSystemTimeZoneById 方法
FromSerializedString 方法
GetAdjustmentRules 方法
GetAmbiguousTimeOffsets 方法
GetAmbiguousTimeOffsets 方法 1
GetHashCode 方法
GetSystemTimeZones 方法
GetUtcOffset 方法
GetUtcOffset 方法 1
HasSameRules 方法
IsAmbiguousTime 方法
IsAmbiguousTime 方法 1
IsDaylightSavingTime 方法
IsDaylightSavingTime 方法 1
IsInvalidTime 方法
ToSerializedString 方法
ToString 方法
CreateAdjustmentRule 方法
Equals 方法 1
GetHashCode 方法
语法定义(C# System.TimeZoneInfo.ConvertTimeBySystemTimeZoneId 方法 (DateTime, String, String) 的用法)
public static DateTime ConvertTimeBySystemTimeZoneId(
DateTime dateTime,
string sourceTimeZoneId,
string destinationTimeZoneId
参数/返回值
参数值/返回值
参数类型/返回类型
参数描述/返回描述
dateTime
System-DateTime
要转换的日期和时间。
sourceTimeZoneId
System-String
源时区的标识符。
destinationTimeZoneId
System-String
目标时区的标识符。
System.DateTime
目标时区中与源时区中的 dateTime 参数对应的日期和时间。
执行转换时,ConvertTimeBySystemTimeZoneId 方法将有效应用 destinationTimeZoneId 时区中的任何调整规则。
尽管与 TimeZoneInfo.ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo) 方法类似,但您可以使用 TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime, String, String) 并通过其标识符而不是其 TimeZoneInfo 对象来指定源时区和目标时区。 如果您必须转换时间而不检索与该时间相对应的时区对象,并且不需要知道转换后的时间是标准时间还是夏时制时间,则此方法非常有用。
此方法检索标识符是来自注册表的 sourceTimeZoneId 和 destinationTimeZoneId 参数的时区。 它不能检索使用 CreateCustomTimeZone 方法创建的时区对象。
dateTime 参数的 Kind 属性值必须对应于 sourceTimeZoneId 参数,如下表所示。
DateTime.Kind 值
sourceTimeZone 值
DateTimeKind.Utc
等于 TimeZoneInfo.Utc.Id。
将 dateTime 转换为目标时区的时间。
DateTimeKind.Utc
不等于 TimeZoneInfo.Utc.Id。
引发 ArgumentException。
DateTimeKind.Local
等于 TimeZoneInfo.Local.Id。
将 dateTime 转换为目标时区的时间。
DateTimeKind.Local
不等于 TimeZoneInfo.Local.Id。
引发 ArgumentException。
DateTimeKind.Unspecified
将 dateTime 转换为目标时区的时间。
由于 ConvertTimeBySystemTimeZoneId 方法依赖于对 FindSystemTimeZoneById 方法的调用,因此前者执行不区分大小写的搜索,以查找与 sourceTimeZoneId 和 destinationTimeZoneId 相对应的时区。
如果 dateTime 参数值是源时区中的不明确时间,则将该时间解释为标准时间。 如果 dateTime 参数是源时区中的无效时间,则此方法会引发 ArgumentException。
将返回的 DateTime 值的 Kind 属性设置为 DateTimeKind.Unspecified,除非目标时区为协调世界时 (UTC),在该情况下将该属性设置为 DateTimeKind.Utc。
System.TimeZoneInfo.ConvertTimeBySystemTimeZoneId 方法 (DateTime, String, String)例子
下面的示例使用 TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime, String, String) 方法显示对应于世界上八个城市的本地系统时间的时间。
DateTime currentTime = DateTime.Now;
Console.WriteLine("Current Times:");
Console.WriteLine();
Console.WriteLine("Los Angeles: {0}",
TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Pacific Standard Time"));
Console.WriteLine("Chicago: {0}",
TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Central Standard Time"));
Console.WriteLine("New York: {0}",
TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Eastern Standard Time"));
Console.WriteLine("London: {0}",
TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "GMT Standard Time"));
Console.WriteLine("Moscow: {0}",
TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Russian Standard Time"));
Console.WriteLine("New Delhi: {0}",
TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "India Standard Time"));
Console.WriteLine("Beijing: {0}",
TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "China Standard Time"));
Console.WriteLine("Tokyo: {0}",
TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Tokyo Standard Time"));
Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2
.NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。