C++ time_t特定时区的 std::string
C++ time_t to std::string for a specific time zone
在C++工作的Linux环境中,我需要将time_t值转换为不同时区的英语字符串表示形式。 例如1305750080 -> "2011-05-18 13:21:20 PST"。我能够使用 gmtime() 或 localtime() 与 strftime() 结合使用来为 GMT 和我的本地时区生成字符串。如何选择备用时区?
gmtime()
这里的参考链接有一个示例,展示了一种非常简单的应用时区偏移量的方法。 当然,你可以创建一个带有枚举或其他东西的类,并想出一些更好的东西。
或者,boost::date_time
有一个相当广泛的实现,适用于Linux和Windows。
我认为你可以用tzset做到这一点。
setenv("TZ", "EST5EDT", 1);
tzset();
您可以使用
putenv
将TZ
环境变量更改为所需的任何时区,然后使用localtime
或最好是localtime_r
。如果需要,您可以使用getenv
缓存旧副本。
相关文章:
- std::strftime 在 Windows 中使用 GMTIME 将时区 UTC 显示为 UTC+1
- 绑定派生类方法C++从实例范围之外的分隔 std::function 变量调用
- 为什么 std::绑定错误参数可以成功?
- 如何将类 1 的 std::函数绑定到类 2 的函数?
- 无法将类型"T&"的非常量左值引用绑定到类型"T"的右值 t++ std::atomic<T>
- 如何将 STL 队列推送函数绑定到 std::函数?
- C++初始化 std::function 时如何将占位符绑定到引用/引用参数?
- msvc 编译器(和其他编译器)如何知道要绑定到哪个 std 重载?
- 如何将 std::将结果绑定到 std::function
- std::绑定variadic模板和自动返回类型
- 带有 std::minmax 和 rvalues 的结构化绑定
- std::具有initializer_list和size的unordered_map构造函数在main中编译,但不在类定
- std::绑定可变参数模板成员函数和通用引用
- 结构化绑定是否适用于 std::vector?
- 为什么 std::bind 绑定到成员函数时无法编译?
- 无法绑定可变参数函数并保存到 std::函数
- 错误:无法将"std::istream {aka std::basic_istream<char>}"lvalue 绑定到"std::basic_istream&<char>&
- 无法将 std::绑定返回值分配给 std::function
- 如何修改 std::generate 的绑定成员函数的结果
- std::tie 在从函数调用传递值时失败,并显示"无法绑定非常量左值引用"