我有一组 unix 时间戳,我正在转换为 boost (1.65.1) 日期,但是当它们在未来变得太远时,转换似乎会崩溃。2040 年及以后的任何事情似乎都以某种方式回到 1900 年后。
鉴于以下代码...
{
std::time_t t = 1558220400;
boost::gregorian::date date = boost::posix_time::from_time_t(t).date();
std::cout << "Date: " << date << std::endl;
}
{
std::time_t t = 2145500000;
boost::gregorian::date date = boost::posix_time::from_time_t(t).date();
std::cout << "Date: " << date << std::endl;
}
{
std::time_t t = 2500000000;
boost::gregorian::date date = boost::posix_time::from_time_t(t).date();
std::cout << "Date: " << date << std::endl;
}
...我得到以下输出...
Date: 2019-May-18
Date: 2037-Dec-27
Date: 1913-Feb-13
...但是我期待以下输出...
Expected output:
Date: 2019-May-18
Date: 2037-Dec-27
Date: 2049-Mar-22
我在这里做错了什么吗?