4

有効なUTC時刻を表すDateTimeインスタンスと、そのDateTimeをそれが適用されるタイムゾーンに変換するオフセットがある場合、これを表すようにDateTimeOffsetインスタンスを作成するにはどうすればよいですか?

var utcDateTime = new DateTime(2011, 02, 29, 12, 43, 0, /*DateTimeKind.Utc*/);
var localOffset = TimeSpan.FromHours(2.0);

var dto = ...

// Here the properties should be as follows;
// dto.UtcDateTime = 2011-02-29 12:43:00
// dto.LocalDateTime = 2011-02-29 14:43:00

おそらく、DateTimeOffset構造を正しく理解していませんが、期待される出力を取得できません。

前もって感謝します

4

1 に答える 1

11

あなたが望むように見えます:

var utcDateTime = new DateTime(2012, 02, 29, 12, 43, 0, DateTimeKind.Utc);
var dto = new DateTimeOffset(utcDateTime).ToOffset(TimeSpan.FromHours(2));

年を2011年(うるう年ではなく、2月に29日がない)から2012年に変更したことに注意してください。

テスト:

Console.WriteLine("Utc = {0}, Original = {1}", dto.UtcDateTime, dto.DateTime);

出力:

Utc = 2/29/2012 12:43:00 PM, Original = 2/29/2012 2:43:00 PM

ローカルシステムのタイムゾーンの時点を表す可能性のあるプロパティは、おそらく必要ないことに注意してください。LocalDateTime

于 2012-02-29T12:58:43.343 に答える