TimeGMT

返回GMT,该计算考虑到当客户端运行时电脑上当地时间的DST转换,有两种变量函数。

无参量调用

datetime  TimeGMT();

调用MqlDateTime类型参量

datetime  TimeGMT(
   MqlDateTime&  dt_struct      // 结构类型变量
   );

参量

dt_struct

[out]   MqlDateTime 结构类型变量。

返回值

日期时间 类型值

注释

如果 MqlDateTime 结构类型变量以参量传递,就会填满。

要安排高分辨率的计数器和计时器,可使用GetTickCount()函数,它产生的值以毫秒为单位。

在策略测试器进行测试期间,TimeGMT() 总是相当于模拟服务器时间的 TimeTradeServer()

示例:

void OnStart()
  {
//--- 声明MqlDateTime变量以填充日期/时间数据,并获取PC本地时间和GMT
   MqlDateTime tm={};
   datetime    time1=TimeLocal();            // 第一种调用形式:PC本地时间
   datetime    time2=TimeGMT(tm);            // 第二种调用形式:通过填充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)time2tm.yeartm.montm.daytm.hourtm.mintm.sectm.day_of_yeartm.day_of_week,
               EnumToString((ENUM_DAY_OF_WEEK)tm.day_of_week), shift);
   /*
   Result:
   Time Local2024.04.18 19:37:23
   Time GMT2024.04.18 12:37:23
   - Year2024
   - Month04
   - Day18
   - Hour12
   - Min37
   - Sec23
   - Day of Year108
   - Day of Week4 (THURSDAY)
   Local time offset relative to GMT: +7
   */
  }