我有一个要求,我必须将给定的日期时间格式的字符串转换为从历元到毫秒的时间。在Javascript中,有日期到时间转换api,但是在c++中,我找不到任何这样的东西。
输入类似于“2016-3月-15 09:23:58.665068”
输出应该以毫秒为单位,比如14520000785秒。
我已经试过寻找刺激,但仍然找不到(或理解)怎么办?此外,通过谷歌,我发现相反的方式,即转换毫秒到日期格式,但不是我需要什么,也没有任何有帮助的帖子。
任何帮助都将不胜感激。
发布于 2016-03-16 14:09:21
仅使用标准库功能:
#include <ctime>
#include <chrono>
#include <iostream>
int main()
{
std::tm tm = {};
const char* snext = ::strptime("2016-Mar-15 09:23:58.665068", "%Y-%b-%d %H:%M:%S", &tm);
auto time_point = std::chrono::system_clock::from_time_t(std::mktime(&tm));
long long duration_ms = time_point.time_since_epoch() / std::chrono::milliseconds(1) + std::atof(snext) * 1000.0f;
std::cout << duration_ms << std::endl;
}打印:1458033838665
见std::chrono::system_clock::now和std::chrono::milliseconds。
https://stackoverflow.com/questions/36037803
复制相似问题