esp32 使用的 c++ 库中自纪元以来的时间
Time since epoch in c++ library used by esp32
我正在尝试在 c++
中创建一个库,供 esp32 使用,并可能在 linux 或 windows 中使用。
现在,我有一段代码可以获取自纪元以来的时间(以毫秒为单位),这是 1970 年 1 月 1 日。这在 linux 中非常有效。虽然,当 esp32 运行此代码时,它 returns 自程序启动以来的时间。我的问题的根源可能是我正在使用的库 chrono
使用方法 millis()
,对于 arduino returns 自程序启动以来的时间。
milliseconds ms = duration_cast< milliseconds >(
system_clock::now().time_since_epoch()
);
我的问题是,是否有任何方法可以在 c++
代码中获取适用于所有平台的自纪元以来的正确时间?
我设法使用宏修复了它:
#if defined(ESP32)
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获取时间,而不是获取程序启动后的时间
我正在尝试在 c++
中创建一个库,供 esp32 使用,并可能在 linux 或 windows 中使用。
现在,我有一段代码可以获取自纪元以来的时间(以毫秒为单位),这是 1970 年 1 月 1 日。这在 linux 中非常有效。虽然,当 esp32 运行此代码时,它 returns 自程序启动以来的时间。我的问题的根源可能是我正在使用的库 chrono
使用方法 millis()
,对于 arduino returns 自程序启动以来的时间。
milliseconds ms = duration_cast< milliseconds >(
system_clock::now().time_since_epoch()
);
我的问题是,是否有任何方法可以在 c++
代码中获取适用于所有平台的自纪元以来的正确时间?
我设法使用宏修复了它:
#if defined(ESP32)
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获取时间,而不是获取程序启动后的时间