gpt4 book ai didi

c++ - 另一个时区的日期 : C++ on Linux

转载 作者:IT王子 更新时间:2023-10-29 00:52:14 30 4
gpt4 key购买 nike

有什么方法可以获取日期......最好是 YYYYMMDD 格式......在澳大利亚/悉尼时区(不仅仅是 GMT+11)......通过 Linux 上的 C++?

谢谢,

罗杰

最佳答案

是的,但您只需使用标准的 c 库机制。

通过创建字符串在环境中设置所需的时区:

std::string tz = "Australia/Sydney";
setenv("TX", const_cast<char *>(tz.c_str()), 1);
tzset(); // Initialize timezone data
time_t aTime = time(NULL); // get the time - this is GMT based.
struct tm retTime;
localtime_r(&aTime, &retTime); // Convert time into current timezone.
char destString[1024];
strftime(destString, 1023, "%Y%m%d %Z", &retTime); // Format the output in the local time.
std::cout << destString << std::endl;

问题在于此代码不是线程安全的 - 更改时区信息的多个线程不会很好地结束。

This Answer为您提供了一种使用 boost 来完成此操作的方法,这绝对容易得多。

关于c++ - 另一个时区的日期 : C++ on Linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4134093/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com