テストする必要があるDateTime拡張機能をいくつか作成しました。それらをテストするために、私は、DateTimeインスタンスがインスタンスを作成するローカルサーバーのもの以外のさまざまなタイムゾーンを表していることをシミュレートできるようにする必要があります。.NET内の非ローカルTimeZoneのDateTimeインスタンス
私は、次の...
//
// Create the new date to test. It will be in the timezone of the server it was created on (EST).
DateTime localDate = new DateTime(2017, 11, 14, 12, 0, 0);
//
// Get the TimeZone for another locale
TimeZoneInfo newTimeZone = TimeZoneInfo.FindSystemTimeZoneById("Egypt Standard Time");
//
// Convert the localDate into a DateTime instance as if created on a server located in
// "Egypt Standard Time". - NOT WORKING
DateTime test = TimeZoneInfo.ConvertTime(localDate, origTimeZone);
//
// run the test
Boolean result = test.ExtensionMethod()
を試してみました。しかし、「テスト」で、この結果だけでは、ローカルEST TZ内の別のDateTimeています。時間はエジプトの時間を反映するように変更されましたが、評価されると、例えば "toUniversalTime"に変換されたインスタンスは、ESTタイムゾーンのように変換されます。
上記の例では、変数「テスト」には、「2017-11-14 19:00:00」の日付時刻が含まれます。私がUTCに変換すると、私は '2017-11-14 17:00:00'の結果を期待していました。代わりに私は '2017-11-15 00:00:00を得ています。
ローカルサーバーのタイムゾーン以外のタイムゾーンからDateTimeをインスタンス化する方法はありますか?
UTCに特定のゾーン内のDateTimeから変換するためのオーバーロードがあります。基本的な "タイムゾーン"としてUTCを使用することは、これを扱うときには良いアイデアです。入力と出力のタイムゾーンを気にする必要があり、コアが機能するはずです。 –
コメントをいただきありがとうございますが、あなたが説明する練習に同意し、完全に同意してください...残念ながら私の状況ではありません。私が本当に知る必要があることは、私が求めていることができるかどうかです。それが行われるべきであるかどうかは状況に左右され、私は会議をプロジェクトチームと議論するように設定しました...再び...フィードバックに感謝します。 –
ここで間違った変数を使用したことがありますか? TimeZoneInfo.ConvertTime(localDate、 'origTimeZone'); –