2017-12-13 9 views
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 

答えて

0

あなたは DSTの調整なしゾーンのための時間ですBaseUtcOffsetを取っています。

関連する問題