我有下面的代码从了posix_timeboost :: posix_time :: time_duration溢出?
boost::posix_time::ptime time1(boost::gregorian::date(9999,12,31));
boost::posix_time::ptime epoch(boost::gregorian::date(1970,1,1));
boost::posix_time::time_duration diff = time1-epoch;
cout<<"A: "<<time1<<endl;
cout<<"B: "<<epoch<<endl;
cout<<"C: "<<diff<<endl;
unix_time = diff.total_seconds()
获得UNIX时间给我这个输出
9999-Dec-31 00:00:00
1970-Jan-01 00:00:00
-1347834:03:51.933722624
现在diff
不应该是一个负数。我如何计算这个权利?有溢出吗?
'长long',但'diff'已经是负 – user2071938
这可能是你在找什么:HTTPS://en.wikipedia .org/wiki/Year_2038_problem – stefaanv
我不能用最初的32位为unix时间 – user2071938