0
タイムゾーンとUTCの時間差を取得しようとしています。私はマシンの日付を7月の日付に変更して、昼間の考慮事項の外にあり、以下の2つのコードセグメントを実行しました。 LinqPadに1つとSSMSに1つ。私は太平洋時間です。 TimeZoneInfo.GetSystemTimeZones()は、現在の時刻が夏時間であるかどうかを常に報告していますが、SQL Serverは夏時間に応じて-7または-8を報告していますか?なぜTimeZoneInfo.GetSystemTimeZones()は非夏時間でUTCの正しい時間オフセットを表示しないのですか?
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