gpt4 book ai didi

c++ - 如何将纳秒纪元时间戳转换为可读格式

转载 作者:行者123 更新时间:2023-11-28 04:15:27 30 4
gpt4 key购买 nike

我有一个 long long 整数,表示具有纳秒精度的纪元时间戳,我想将其转换为人类可读的时间戳,例如 date-hh:mm:ss

我试过用static cast直接把这个整数转成time_t格式,打算用localtime格式化,但是没有成功。

从文档中可以看出 time_ts 是一个 32 位整数,这意味着它不够大,无法读取我的时间戳。将我的时间戳格式化为人类可读格式的最佳方法是什么?

#include <iostream>
#include <sstream>
#include <locale>
#include <iomanip>
#include <ctime>

int main()
{
time_t now = time(NULL);
long long int ts = 1561402947698860015;

time_t t = static_cast<time_t>(ts);
std::cout << std::asctime(std::localtime(&t))
<< t << " seconds since the Epoch\n";
std::cout<<"done"<<std::endl;
return 0;
}

最佳答案

如果您除以转换为秒,您的代码将起作用(如 user4581301 所评论):

long long int ts = 1561402947698860015 / 1000000000;

而且,而不是使用:

std::asctime(std::localtime(&t))

您可以使用以下方法获得相同的结果:

ctime(&t)

关于c++ - 如何将纳秒纪元时间戳转换为可读格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56744229/

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