[date_time] unexpected behaviour from microsec_clock::local_time on 32 bit system.

Hi all, I have the following little program (I'm using mingw 3.4.2 (32bit) ): #include <boost/date_time/posix_time/posix_time.hpp> #include <iostream> int main() { using namespace boost; using namespace boost::posix_time; //Time now (since epoch in seconds)... static const ptime secSinceEpoch( second_clock::local_time() ); //Time now (since epoch in micros)... static const ptime microsecSinceEpoch( microsec_clock::local_time() ); //Elapsed should be close to zero... time_duration elapsed = microsecSinceEpoch - secSinceEpoch; std::cout << "elapsed: " << elapsed.total_milliseconds() << std::endl; return 0; } It outputs: "elapsed: -1240428644900", whereas I expected it to output a positive value. It therefore seems that microsec_clock::local_time() wraps. Is 64-bits a pre-requisite for this library to work correctly or is there some remedy? Kind regards, Werner
participants (1)
-
werasm@gmail.com