我有一个像这样的字符串2013-05-29T21:19:48Z
。我想将其转换为自 1970 年 1 月 1 日(UNIX 纪元)以来的秒数,这样我就可以仅使用 4 个字节(或者可能是 5 个字节,以避免 2038 年问题)来保存它。我怎样才能以便携的方式做到这一点? (我的代码必须同时在 Linux 和 Windows 上运行。)
我可以从字符串中获取日期部分,但我不知道如何计算秒数。我试着看看C++ 中日期和时间实用程序的文档,但我没有找到任何东西。
这是工作代码
string s{"2019-08-22T10:55:23.000Z"};
std::tm t{};
std::istringstream ss(s);
ss >> std::get_time(&t, "%Y-%m-%dT%H:%M:%S");
if (ss.fail()) {
throw std::runtime_error{"failed to parse time string"};
}
std::time_t time_stamp = mktime(&t);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)