私は、金融市場が開いているときにいくつかのコードをトリガーするアプリケーションを作成しようとしています。基本的に擬似コードで:
if(9:30AM ET < Time.Now < 4:00PM ET) {//do something}
C#でDateTimeオブジェクトを使用してこれを行う方法はありますか?
これを試して:
var timeUtc = DateTime.UtcNow;
TimeZoneInfo easternZone = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
DateTime easternTime = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, easternZone);
おそらく 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);