diff --git a/include/wx/datetime.h b/include/wx/datetime.h index f6bb9cdc29..5b6804709a 100644 --- a/include/wx/datetime.h +++ b/include/wx/datetime.h @@ -1781,9 +1781,16 @@ inline wxDateTime wxDateTime::Today() #if (!(defined(__VISAGECPP__) && __IBMCPP__ >= 400)) inline wxDateTime& wxDateTime::Set(time_t timet) { - // assign first to avoid long multiplication overflow! - m_time = timet - WX_TIME_BASE_OFFSET ; - m_time *= TIME_T_FACTOR; + if ( timet == (time_t)-1 ) + { + m_time = wxInvalidDateTime.m_time; + } + else + { + // assign first to avoid long multiplication overflow! + m_time = timet - WX_TIME_BASE_OFFSET; + m_time *= TIME_T_FACTOR; + } return *this; } diff --git a/interface/wx/datetime.h b/interface/wx/datetime.h index 01ef279dcf..9c07d391d6 100644 --- a/interface/wx/datetime.h +++ b/interface/wx/datetime.h @@ -483,6 +483,9 @@ public: /** Constructs the object from @a timet value holding the number of seconds since Jan 1, 1970. + + If @a timet is invalid, i.e. @code (time_t)-1 @endcode, wxDateTime + becomes invalid too, i.e. its IsValid() will return @false. */ wxDateTime& Set(time_t timet); /**