在C#中,處理不同時(shí)區(qū)的時(shí)間可以使用DateTime
和TimeZoneInfo
類
TimeZoneInfo localTimeZone = TimeZoneInfo.Local;
DateTime
對(duì)象:DateTime dateTimeInTimeZone = DateTime.UtcNow;
DateTime
對(duì)象轉(zhuǎn)換為其他時(shí)區(qū):TimeZoneInfo targetTimeZone = TimeZoneInfo.FindSystemTimeZoneById("目標(biāo)時(shí)區(qū)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("時(shí)區(qū)ID");
注意:時(shí)區(qū)ID是一個(gè)字符串,表示時(shí)區(qū)的唯一標(biāo)識(shí)符。例如,美國(guó)東部時(shí)區(qū)的ID為"Eastern Standard Time"
。你可以從上面的示例中獲取所有可用的時(shí)區(qū)ID。
通過(guò)這些方法,你可以在C#中處理不同時(shí)區(qū)的時(shí)間。請(qǐng)確保正確處理夏令時(shí)調(diào)整,因?yàn)槟承r(shí)區(qū)會(huì)在特定時(shí)間段內(nèi)實(shí)行夏令時(shí)。