作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试实现一个可以转换给定时区名称字符串的功能,它可以:
putenv("TZ=Australia/Melbourne")
来完成,但这是
may not be thread-safe。
putenv()
或以某种方式使其成为线程安全的方法吗?提前致谢!
最佳答案
由于编译器尚不支持C++ 20 std::chrono
库的所有功能,因此我将编写一个使用Howard Hinnant的date
https://github.com/HowardHinnant/date库的解决方案。 C++ 20引入了 std::chrono::zoned_time
,您可以使用它来实现所需的功能。
#include "date/tz.h"
#include <iostream>
int main()
{
auto current_time = std::chrono::system_clock::now();
auto la = date::zoned_time{"America/Los_Angeles", current_time};
auto sy = date::zoned_time{"Australia/Sydney", current_time};
std::cout << date::format("%T\n", sy.get_local_time() - la.get_local_time());
}
std::chrono::time_zone::name
。
关于c++ - 以线程安全的方式在C/C++中从时区名称字符串转换时区偏移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60015754/
我是一名优秀的程序员,十分优秀!