将日期时间转换为毫秒 – C – 跨平台
发布时间:2020-12-16 10:13:20 所属栏目:百科 来源:网络整理
导读:我想将格式为“20160907-05:00:54.123”的字符串转换为毫秒. 我知道strptime在 Windows中不可用,我想在Windows和 Linux中运行我的程序.我也不能使用第三方库. 我可以将字符串标记化并转换它.但是有更优雅的方式就像使用strptime这样做吗? 解决方法 给定字
我想将格式为“20160907-05:00:54.123”的字符串转换为毫秒.
我知道strptime在 Windows中不可用,我想在Windows和 Linux中运行我的程序.我也不能使用第三方库. 我可以将字符串标记化并转换它.但是有更优雅的方式就像使用strptime这样做吗? 解决方法
给定字符串的格式,可以很容易地按如下方式解析它(尽管正则表达式或get_time可能更优雅):
tm t; t.tm_year = stoi(s.substr(0,4)); t.tm_mon = stoi(s.substr(4,2)); t.tm_mday = stoi(s.substr(6,2)); t.tm_hour = stoi(s.substr(9,2)); t.tm_min = stoi(s.substr(12,2)); t.tm_sec = 0; double sec = stod(s.substr(15)); 找到自纪元以来的时间可以用 mktime(&t) + sec * 1000 请注意,小数秒需要以不同的方式处理 – 不幸的是, (参见完整代码here.) 编辑 正如Mine和Panagiotis Kanavos在评论中正确注意到的那样,Visual C显然支持get_time很长一段时间,并且它的使用时间要短得多(注意,小数秒需要以相同的方式处理). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |