c++ - 在 C++ 中使用 mktime 的纪元

标签 c++ date datetime

我正在阅读以下内容:http://en.cppreference.com/w/cpp/chrono/c/mktime

特别是说:

Converts local calendar time to a time since epoch as a time_t object.

我假设这个纪元是 unix 纪元 (1970 01 01),但来自以下程序

#include <ctime>
#include <iostream>

int main()
{
    std::tm example = {00, 00, 00, 01, 12, 69};
    std::cout << std::mktime(&example) << std::endl;
    return 0;
}

我得到了输出

0

这告诉我纪元是 1969 年 12 月 1 日的 00:00:00。 是否定义了 epoch 实现,或者我有其他一些根本性的误解?

最佳答案

对于现代的、不易出错的方法,这里是 free, open-source C++11/14/17 library做同样的事情,避免容易出错、线程不安全的 C API。

#include "chrono_io.h"
#include "date.h"
#include <iostream>

int
main()
{
    using namespace date;
    sys_seconds t = sys_days{1_d/dec/1969};
    std::cout << t.time_since_epoch() << '\n';
}

输出:

-2678400s

关于c++ - 在 C++ 中使用 mktime 的纪元,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42741051/

相关文章:

c++ - Linux 上的 C++ 在一行上打印 5000 个 float 时换行

excel - 如何编写公式将字符串日期 ("yyyy.mm.dd) 转换为通用日期格式 (mm/dd/yyyy)?

MYSQL:如何从数据类型为 char(10) 的日期获取星期几、一年中的月份

php - 如何自动从数据库获取当前日期的数据

python - 使用python在CSV中找出给定DOB的月份和年份年龄

c++ - 虚拟方法不调用派生类方法。 - C++

c++ - 如何包装模板函数以处理 const 和非常量数据

php - 尝试比较两个日期...一个来自存储为 DATE 的 mysql DB,另一个使用 DateTime 对象

mysql - 在 MySQL 中选择 TIMESTAMP 而不是 DATETIME 列的充分理由是什么?

c++ - 复制指向对象指针的构造函数