gpt4 book ai didi

c++ - 在 C++ 中将日期转换为以毫秒为单位的时间?

转载 作者:太空狗 更新时间:2023-10-29 20:37:06 24 4
gpt4 key购买 nike

我有一个要求,我必须将给定的日期时间格式的字符串转换为从纪元开始的毫秒数。在 Javascript 中有日期到时间转换的 API,但在 C++ 中我找不到这样的东西。

输入看起来像'2016-Mar-15 09:23:58.665068'

输出应该以毫秒为单位,例如 14520000785。

我已经尝试研究 boost,但仍然找不到(或理解)该怎么做?此外,通过谷歌我找到了另一种方法,即将毫秒转换为日期格式,但不是我需要的,也不是任何有用的帖子。

任何帮助将不胜感激。

最佳答案

仅使用标准库功能:

#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::nowstd::chrono::milliseconds .

关于c++ - 在 C++ 中将日期转换为以毫秒为单位的时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36037803/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com