DateTime
異なるタイムゾーンに正しく変換する方法を理解するのに問題があります。
DateTime
たとえば、 EST の 10:00 (軍事) をDateTime
UTCに変換したいとします。
ここに私が試すものがあります:
DateTime unspecified = new DateTime(2013, 8, 15, 10, 0, 0, DateTimeKind.Unspecified);
var utc = TimeZoneInfo.ConvertTime(unspecified, TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time"), TimeZoneInfo.Utc);
... UTC でも現地時間でもないため、 で構成DateTime
します (EST 10:00 です)。次に、これをTimeZoneInfo.ConvertTimeDateTimeKind.Unspecified
に渡し、これがEST にあり、UTC に変換したいことを伝えます。DateTime
EST は協定世界時 (UTC) から 5 時間遅れているためutc
、に等しいと予想されますが{15.08.2013 15:00:00}
、上記のコードを実行すると、何らかの理由で取得されます{15.08.2013 14:00:00}
(つまり、時差は4 時間です)。
質問は次のとおりです。なぜですか。これはある種の昼間の時間の問題ですか?もしそうなら - 昼間の節約時間を考慮せずにこの変換を取得するにはどうすればよいですか?