C++ TimeTyt到STD::特定时区的字符串 在C++环境下的Linux环境中,我需要将TimeStt值转换成不同时区的英文字符串表示形式。e、 美国太平洋标准时间2011-05-1813:21:20。我能够使用gmtime或localtime与strftime组合来生成GMT和我的本地时区的字符串。我该如何选择另一个时区呢?

C++ TimeTyt到STD::特定时区的字符串 在C++环境下的Linux环境中,我需要将TimeStt值转换成不同时区的英文字符串表示形式。e、 美国太平洋标准时间2011-05-1813:21:20。我能够使用gmtime或localtime与strftime组合来生成GMT和我的本地时区的字符串。我该如何选择另一个时区呢?,c++,time,posix,C++,Time,Posix,我想你可以用 有一个示例显示了应用时区偏移的非常简单的方法。当然,您可以创建一个带有枚举或其他内容的类,并提出一些更好的方法 或者,它有一个相当广泛的实现,可以在linux和windows上运行。您可以使用putenv将TZ环境变量更改为您想要的任何时区,然后使用localtime或最好是localtime\r。如果需要,您可以使用getenv缓存旧副本。我找到了该引用,但如果日期不完整,这不会导致问题吗?@JoshG:是的,这个简单的示例只处理时间,而不处理日期,并且不处理像印度这样与UTC有

我想你可以用

有一个示例显示了应用时区偏移的非常简单的方法。当然,您可以创建一个带有枚举或其他内容的类,并提出一些更好的方法


或者,它有一个相当广泛的实现,可以在linux和windows上运行。

您可以使用putenv将TZ环境变量更改为您想要的任何时区,然后使用localtime或最好是localtime\r。如果需要,您可以使用getenv缓存旧副本。

我找到了该引用,但如果日期不完整,这不会导致问题吗?@JoshG:是的,这个简单的示例只处理时间,而不处理日期,并且不处理像印度这样与UTC有分数偏移的时区。我可能也会使用Booost。我已经给出了这个结论:接受的答案是调用C++中没有的函数库;而是在POSIX标准中。
setenv("TZ", "EST5EDT", 1);
tzset();