
Hello I'm using date_time on a 32b Ubuntu machine (1.36, gcc 4.2.4). The following code shows the problem (at least on my machine): (compiled with -O2 -Wall, without warnings) #include <iostream> #include <boost/date_time/posix_time/posix_time.hpp> #include <boost/date_time/gregorian/gregorian_types.hpp> using namespace std; namespace bpt = boost::posix_time; int main(int, char**) { const int64_t timeInNs = 1235051546649264674LL; const bpt::ptime EPOCH(boost::gregorian::date(1970, 1, 1)); bpt::ptime offset = EPOCH + bpt::microsec(timeInNs / 1000); cout << offset << std::endl; return 0; } I expect this program to print a date after 1.Jan 1970. However, I get the following output: 1969-Dec-21 19:28:13.710725 If I change timeInNs to 1235051546649264LL (I removed the last 3 digits), the date is after 1.1.1970. Whats wrong? Christoph