web-dev-qa-db-ja.com

DateTimeを東部標準時間に変換する方法

私は、金融市場が開いているときにいくつかのコードをトリガーするアプリケーションを作成しようとしています。基本的に擬似コードで:

if(9:30AM ET < Time.Now < 4:00PM ET) {//do something}

C#でDateTimeオブジェクトを使用してこれを行う方法はありますか?

51
locoboy

これを試して:

var timeUtc = DateTime.UtcNow;
TimeZoneInfo easternZone = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
DateTime easternTime = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, easternZone);
118
Dietpixel

おそらく TimeZoneInfo クラスの ConvertTime メソッドを使用して、指定されたDateTimeを東部時間帯に変換し、そこから比較を行うことができます。

var timeToConvert = //whereever you're getting the time from
var est = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
var targetTime = TimeZoneInfo.ConvertTime(timeToConvert, est);
8
R0MANARMY