[我正在尝试在c++
中创建一个库,以供esp32使用,并可能在Linux或Windows中使用。
现在,我有一段代码获取自1970年1月1日以来的毫秒数。这在linux上运行良好。虽然,当esp32运行此代码时,它返回自程序启动以来的时间。问题的根源可能是我正在使用的库chrono
使用方法millis()
,在arduino情况下,该方法返回自程序启动以来的时间。
milliseconds ms = duration_cast< milliseconds >(
system_clock::now().time_since_epoch()
);
我的问题是,从c++
代码中的纪元开始在所有平台上都能正常工作吗?
我设法通过使用宏将其修复:
const char* ntpServer = "pool.ntp.org";
const long gmtOffset_sec = 0;
const int daylightOffset_sec = 3600;
configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);
#endif
这样,esp32可以从ntpServer获取时间,而不是自程序启动以来获取时间。