TimeZone 类只识别本地时区,但可以在协调世界时 (UTC) 和本地时间之间转换时间。TimeZoneInfo 对象可以表示任意时区,且 TimeZoneInfo 类的方法可用于将一个时区的时间转换为其他任意时区的相应时间。
TimeZoneInfo timeZoneInfoLocal = TimeZoneInfo.Local;
string s = timeZoneInfoLocal.DaylightName + "," + timeZoneInfoLocal.DisplayName + ","
+ timeZoneInfoLocal.Id + "," + timeZoneInfoLocal.StandardName + "," + timeZoneInfoLocal.SupportsDaylightSavingTime;
//获取本地时间对应的标准时间(UTC)
DateTime utc=TimeZoneInfo.ConvertTimeToUtc(DateTime.Now);
//UTC转化为本地时间
DateTime nowTime = TimeZoneInfo.ConvertTimeFromUtc(utc, timeZoneInfoLocal);
//获取本地时间和UTC之间的差值--时差
TimeSpan utcOffset =TimeZoneInfo.Local.BaseUtcOffset;
TimeSpan utcOffset1 = TimeZoneInfo.Local.GetUtcOffset(DateTime.Now);
TimeSpan a = new TimeSpan(10, 0, 0);
TimeZoneInfo timeZoneInfoHawaiian = TimeZoneInfo.CreateCustomTimeZone("Hawaiian Standard Time sss", a, "夏威夷", "Hawaiian");
DateTime hawaiianTime = TimeZoneInfo.ConvertTimeFromUtc(utc, timeZoneInfoHawaiian);