在C#中,处理不同时区的时间可以使用DateTime
和TimeZoneInfo
类
TimeZoneInfo localTimeZone = TimeZoneInfo.Local;
DateTime
对象:DateTime dateTimeInTimeZone = DateTime.UtcNow;
DateTime
对象转换为其他时区:TimeZoneInfo targetTimeZone = TimeZoneInfo.FindSystemTimeZoneById("目标时区ID");
DateTime targetDateTime = TimeZoneInfo.ConvertTime(dateTimeInTimeZone, localTimeZone, targetTimeZone);
ReadOnlyCollection<TimeZoneInfo> timeZones = TimeZoneInfo.GetSystemTimeZones();
foreach (TimeZoneInfo timeZone in timeZones)
{
Console.WriteLine($"ID: {timeZone.Id}, DisplayName: {timeZone.DisplayName}, StandardName: {timeZone.StandardName}");
}
TimeZoneInfo timeZoneById = TimeZoneInfo.FindSystemTimeZoneById("时区ID");
注意:时区ID是一个字符串,表示时区的唯一标识符。例如,美国东部时区的ID为"Eastern Standard Time"
。你可以从上面的示例中获取所有可用的时区ID。
通过这些方法,你可以在C#中处理不同时区的时间。请确保正确处理夏令时调整,因为某些时区会在特定时间段内实行夏令时。