c++ - 将时间(以秒为单位)从大纪元转换为一年中的某一天?

标签 c++ time epoch

我有一个充满数据的文件,其中一列是从大纪元算起的秒数。作为引用,示例值如下所示:

1498493536984926976

我需要将其转换为一年中的某一天。到目前为止我所拥有的是这段代码,它使用 this reference将日期转换为正常的可读结构,然后 strftime 从结构中提取一年中的某一天:

time_t rawtime = stol(exploded_line[2]);
std::cout << rawtime << std::endl;
struct tm date; 
date = *localtime( &rawtime );
char *buffer;
std::cout << 2 << std::endl;
strftime (buffer,sizeof(buffer),"%j",&date);

但是,strftime 行上的这段代码SegFaults!我不知道是什么原因造成的。我尝试将 buffer 初始化为

char buffer[80];

和各种其他声明,但似乎没有任何效果。我也试过完全放弃缓冲区,只使用 std::string;那也没有用。

此外,我并不偏爱这种方法。如果其他人有更好的方法从 Epoch 时间获取一年中的某一天,我将完全实现它。

任何帮助将不胜感激!

最佳答案

这些行是你的问题:

char *buffer;

strftime (buffer,sizeof(buffer),"%j",&date);

您已经分配了一个 char * 但它没有指向任何东西。它只是一个随机值,因此您将一个野指针传递给 strftime()。此外,sizeof(buffer) 将是指针的大小(4 或 8 个字节,具体取决于您的体系结构),而不是缓冲区应该指向的数组的大小。

char * buffer 更改为 char buffer[32]; 或类似的东西。

关于c++ - 将时间(以秒为单位)从大纪元转换为一年中的某一天?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44956621/

相关文章:

python - 如何从 Unix 纪元时间转换并考虑 Python 中的夏令时?

python - 在 Python 中将自纪元以来的秒数转换为自 0001-01-01 UTC 以来的天数

c++ - 在具有不同模板参数的列表项上调用参数化方法

c++ - 使用 SFML 在第二台显示器上打开全屏窗口?

python - 如何使函数在特定时间段内运行?

php日期格式插入错误的日期

c++ - 字符数组到单个整数

C++ 访问 URL 的最快方法

java - 如何创建一个用户闲置5分钟后弹出的对话框? ( java )

php - 在时间/日期 PHP 和 ACF 方程中添加额外的一天(对于 WordPress 网站)