TimeGMT

クライアント端末が実行しているコンピュータのローカル時間のDST スイッチを考慮して、GMTを返します。この関数には 2 つのバージョンがあります。

パラメータなしでの呼び出し

datetime  TimeGMT();

MqlDateTime 型のパラメータとの呼び出し

datetime  TimeGMT(
  MqlDateTime&  dt_struct      // 構造体型の変数
  );

パラメータ

dt_struct

[out] MqlDateTime 構造体型の変数

戻り値

datetime 型の値

注意事項

MqlDateTime 構造型の変数がパラメータとして渡された場合は、それに応じて満たされます。

高解像度のカウンターとタイマーを配置するには、ミリ秒単位で値を生成する GetTickCount() 関数を使用します。

ストラテジーテスターのテスト中には TimeGMT() は常にシミュレーとされたサーバタイムの TimeTradeServer() に等しいです。

例:

void OnStart()
 {
//--- 日付/時刻データを格納するMqlDateTime変数を宣言し、PCの現地時間とGMTを取得する
  MqlDateTime tm={};
  datetime   time1=TimeLocal();           // 最初の呼び出し形式:PCの現地時間
  datetime   time2=TimeGMT(tm);           // 2番目の呼び出し形式:MqlDateTime構造体を埋めてPCの現地時間から計算されたGMT
  int         shift=int(time1-time2)/3600; // GMTを基準とした現地時間のオフセット
 
//--- ログ内の埋め込まれたMqlDateTime構造体のデータを使用して現地時間とGMTを表示する
  PrintFormat("Time Local: %s\nTime GMT: %s\n- Year: %u\n- Month: %02u\n- Day: %02u\n"+
              "- Hour: %02u\n- Min: %02u\n- Sec: %02u\n- Day of Year: %03u\n- Day of Week: %u (%s)\nLocal time offset relative to GMT: %+d",
              (string)time1, (string)time2, tm.year, tm.mon, tm.day, tm.hour, tm.min, tm.sec, tm.day_of_year, tm.day_of_week,
              EnumToString((ENUM_DAY_OF_WEEK)tm.day_of_week), shift);
 /*
  結果:
  Time Local: 2024.04.18 19:37:23
  Time GMT: 2024.04.18 12:37:23
  - Year: 2024
  - Month: 04
  - Day: 18
  - Hour: 12
  - Min: 37
  - Sec: 23
  - Day of Year: 108
  - Day of Week: 4 (THURSDAY)
  Local time offset relative to GMT: +7
 */
 }