gpt4 book ai didi

c++ - 本地时间()返回模棱两可

转载 作者:太空狗 更新时间:2023-10-29 23:04:35 24 4
gpt4 key购买 nike

我编写了以下代码并在不同平台上进行了测试。与其他平台相比,我在 HP-UX IA64 上得到了不同的结果。

代码:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(void)
{
time_t t;
struct tm *gmt, *lat, ldummy;

tzset();

printf("Local timezone: TZ=%s\n\n", getenv("TZ"));

t = 1394881705;

lat = localtime(&t);
printf("Local time is : %s", asctime(lat));

gmt = gmtime(&t);
printf("GMT is : %s", asctime(gmt));

return 0;
}

输出:-

Linux

$ ./a.out
Local timezone: TZ=CET

Local time is : Sat Mar 15 12:08:25 2014
GMT is : Sat Mar 15 11:08:25 2014

孙悟空

$ ./a.out
Local timezone: TZ=CET

Local time is : Sat Mar 15 12:08:25 2014
GMT is : Sat Mar 15 11:08:25 2014

人工智能

$ ./a.out  
Local timezone: TZ=CET

Local time is : Sat Mar 15 12:08:25 2014
GMT is : Sat Mar 15 11:08:25 2014

(这就是问题所在)HP-UX IA64

$ ./a.out
Local timezone: TZ=CET

Local time is : Sat Mar 15 11:08:25 2014
GMT is : Sat Mar 15 11:08:25 2014

我想了解为什么 HP-UZ IA64(版本为 11.31)的输出不同。我找不到任何关于这种古怪行为的相关文件。有人可以帮助我理解这一点吗?

最佳答案

在 HP-UX ia64 上,当我将时区设置为 TZ=CET 时,它只是认为它与 UTC 相同。根据位于 link 的 HP-UX 文档强调我的,"TZ 可以使用以下格式设置:[:]STDoffset[DST[offset][,rule]]"此处的偏移量是强制性的,表示“必须添加到本地时间才能到达协调世界时 (UTC) 的值。”
因此,在没有偏移的情况下,HP-UX 将 STD 视为与 UTC 相同。

关于c++ - 本地时间()返回模棱两可,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22427600/

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