[英]TimeZoneInfo.GetSystemTimeZones Method - include daylight savings time etc?
[英]Why TimeZoneInfo.GetSystemTimeZones() is not showing the correct hour offset with UTC in non daylight saving dates?
我正在尝试获取时区和UTC之间的小时数差异。 我将机器的日期更改为7月的某个日期,这样我就不考虑白天了,并运行下面的两个代码段。 LinqPad中一个,SSMS中一个。 我在太平洋时间。 为什么TimeZoneInfo.GetSystemTimeZones()无论当前时间是否为夏时制总是报告-8,而SQL Server根据夏时制报告-7或-8?
有没有一种方法可以使TimeZoneInfo.GetSystemTimeZones()显示实际的小时偏移量,还是固定的? 我没有看到用于此的参数。
C#:
TimeZoneInfo local = TimeZoneInfo.Local;
TimeZoneInfo.ClearCachedData();
var sb = new StringBuilder();
foreach (var tzi in TimeZoneInfo.GetSystemTimeZones())
{
sb.AppendFormat(" {0}| {1} | {2} | {3} | {4}",
tzi.BaseUtcOffset.TotalHours,
tzi.StandardName,
tzi.DisplayName,
tzi.DaylightName,
tzi.SupportsDaylightSavingTime);
sb.AppendLine();
}
string table = sb.ToString().Dump(); // Always -8 for Pacific. Why?
SQL:
SELECT DATEDIFF(hh,GETUTCDATE(),GETDATE()) -- -7 o -8. This is expected
您正在使用BaseUtcOffset ,这是没有 DST调整的区域时间。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.