我正在使用提升日期时间来计算特定日期的 unix 时间。在大多数情况下,返回值是正确的,但有时计算的秒数不正确。
这是一个例子:
boost::posix_time::ptime t(boost::gregorian::date(1900, 1, 1));
boost::posix_time::ptime epoch(boost::gregorian::date(1970, 1, 1));
boost::posix_time::time_duration dur;
dur = t - epoch;
int tstamp = dur.total_seconds();
if (t < epoch) tstamp = -tstamp ;
预期值为-2208902400,但我得到-2085978496。您有解决此问题的方法吗?