如何创建1970年1月1日00:00:00的std :: chrono :: time_point?

Ral*_*zky 3 c++ time c++-chrono

是否有符合便携式标准的方法来创建1970年1月1日00:00:00的std :: chrono :: time_point?这必须是线程安全的.因此,解决方案应该避免类似的功能std::gmtime(),std::localtime()并且没有线程安全保证.

这不是将std :: chrono :: time_point转换为unix时间戳的重复,因为我要求一个线程安全可移植解决方案.那里的问题也没有要求,答案也没有提供这种保证.

Mar*_*ica 7

在实践中,std::chrono::system_clock::from_time_t(0)将返回您想要的值.

原则上,我看不出你想要什么.

作为替代方案,在多个线程开始运行之前计算此值一次(在启动时).

  • 实际上,我发现传递 `mktime(&tm)` 而不是 `0` 应该可以工作,其中 `tm` 的类型是 `std::tm`,并设置了适当的字段。 (2认同)