C++ 时间不填写年份
C++ strptime not filling in year
>我正在尝试使用 strptime 将字符串解析为结构 tm。 看起来很简单,但它没有正确填写年份(是的,我知道 1900 偏移量)——通话后,年份设置为 0。 其他字段看起来不错。 见下文:
struct tm tm;
memset(&tm, 0, sizeof(struct tm));
strptime("Fri Jan 17 09:44:33 UTC 2014", "%a %b %d %H:%M:%S %Z %Y", &tm);
在 strptime 调用之后,tm 结构如下所示 - 请注意 tm_year=0,我预计它是 114:
{tm_sec = 33, tm_min = 44, tm_hour = 9, tm_mday = 17, tm_mon = 0, tm_year = 0,
tm_wday = 5, tm_yday = 0, tm_isdst = 0, tm_gmtoff = 0, tm_zone = 0x0}
我确定我错过了一些简单的东西 - 任何人都可以向我指出吗?
在我的系统(Mac OS X)上,man strptime
有关于%Z的注释:
%Z 格式说明符仅接受 本地时区或值 "格林威治标准时间"。 此限制是由于时区缩写的过载而导致的歧义。 其中一个例子是EST,它既是东部标准时间,也是澳大利亚东部夏令时。
事实上,如果我将您的"UTC"更改为"GMT",代码会突然起作用。 请注意,无论出于何种原因,Python在这里都更聪明,并且也支持"UTC"。
相关文章:
- C++为构建时间获取QDateTime的可靠方法
- 从持续时间构造std::chrono::system_clock::time_point
- 向量 <int> a {N, 0} 和 int arr a[N] = {0} 的时间复杂度有什么区别
- while循环中while循环的时间复杂度是多少
- 使用简单类型列表实现的指数编译时间.为什么
- 是否可以在编译时初始化数组,以便在运行时不会花费时间?
- 在已经使用Git的情况下减少编译时间
- 有没有一种方法可以创建一个带有哈希表的数据库,该哈希表具有恒定时间查找功能
- 如何将包含epoch时间的十六进制字符串转换为time_t
- 从文本文件中读取时钟时间和事件时间并进行处理
- 具有未知值时的时间复杂性
- 如何减少花费的时间
- C++在变量给定的指定时间内关闭电脑
- rcpp函数中的清理时间很长
- C++:floor unix时间戳到UTC月份
- 如何在c++中录制具有精确帧时间戳的视频
- 在两台机器之间进行时间戳的最佳c++chrono函数是什么
- KMP算法和LPS表构造的运行时间
- 为什么std::互斥需要很长的、非常不规则的时间来共享
- 使用Boost Interprocess创建托管共享内存需要很长时间