While doing some testing I've come across what I consider a bug in the boost::posix::from_time_t function. I'm running this on Visual studio 2005 due to needing to deal with some legacy code. I'm using boost v 1.39 - Issue is that if you create a time_t representing a date after Jan 18 2038 using standard functions, when the time_t is loaded into the ptime it's rolling back to 1901. In Visual studio 2005, time_t is 64 bit. Example code: #include <boost/date_time/posix_time/posix_time.hpp> #include <boost/date_time/posix_time/time_parsers.hpp> int main() { struct tm timeStruct; boost::posix_time::ptime boostTime; time_t timeVal; memset(&timeStruct, 0, sizeof(timeStruct)); timeStruct.tm_year = 138; timeStruct.tm_mon = 0; timeStruct.tm_mday = 18; timeVal = mktime(&timeStruct); std::cout << timeVal << std::endl; boostTime = boost::posix_time::from_time_t(timeVal); std::cout << boostTime << std::endl; memset(&timeStruct, 0, sizeof(timeStruct)); timeStruct.tm_year = 138; timeStruct.tm_mon = 0; timeStruct.tm_mday = 19; timeVal = mktime(&timeStruct); std::cout << timeVal << std::endl; boostTime = boost::posix_time::from_time_t(timeVal); std::cout << boostTime << std::endl; return 0; } which outputs: 2147403600 2038-Jan-18 05:00:00 2147490000 1901-Dec-13 22:31:44 which is not quite the result I was hoping for. Any suggestions other than not using time_t? ( It's been considered and rejected as a possibility for now) Thanks in advance Scott V