【发布时间】:2019-05-21 14:17:26
【问题描述】:
我使用strftime 来格式化时间。 %Z 格式化时区。但是结果是GMT用arm-linux-gnueabihf-gcc编译,UTC用mipsel-openwrt-linux-uclibc-gcc编译。
我不知道为什么。
time_t t = time(NULL);
char stat_timestamp[24] = {0};
strftime(stat_timestamp, sizeof stat_timestamp, "%F %T %Z", gmtime(&t));
printf("gmtime: %s\n", stat_timestamp);
用arm-linux-gnueabihf-gcc编译:
gmtime: 2018-12-21 XX:XX:XX GMT
用mipsel-openwrt-linux-uclibc-gcc编译:
gmtime: 2018-12-21 XX:XX:XX UTC
【问题讨论】:
-
两个系统使用不同的时区名称。你还有什么想要的吗?我建议使用更宽的
char stat_timestamp[24]-->char stat_timestamp[100]进行此调查,因为缓冲区不足会导致不确定的stat_timestamp[]。 -
时区名称来自系统配置,而不是 C 库。