X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/38caaa61b154f60871cb6ec82040362762dd2dba..ab5fe83396c13f9fbf01630c52adf4df7607cbfe:/src/common/datetime.cpp diff --git a/src/common/datetime.cpp b/src/common/datetime.cpp index 5b8f33ddb3..7dc3120194 100644 --- a/src/common/datetime.cpp +++ b/src/common/datetime.cpp @@ -63,12 +63,14 @@ #pragma hdrstop #endif +#if !defined(wxUSE_DATETIME) || wxUSE_DATETIME + #ifndef WX_PRECOMP #include "wx/string.h" - #include "wx/intl.h" #include "wx/log.h" #endif // WX_PRECOMP +#include "wx/intl.h" #include "wx/thread.h" #include "wx/tokenzr.h" #include "wx/module.h" @@ -100,7 +102,22 @@ #define WX_TIMEZONE _timezone #elif defined(__MWERKS__) long wxmw_timezone = 28800; - #define WX_TIMEZONE wxmw_timezone; + #define WX_TIMEZONE wxmw_timezone + #elif defined(__DJGPP__) + #include + #include + static long wxGetTimeZone() + { + static long timezone = MAXLONG; // invalid timezone + if (timezone == MAXLONG) + { + struct timeb tb; + ftime(&tb); + timezone = tb.timezone; + } + return timezone; + } + #define WX_TIMEZONE wxGetTimeZone() #else // unknown platform - try timezone #define WX_TIMEZONE timezone #endif @@ -3371,8 +3388,12 @@ const wxChar *wxDateTime::ParseTime(const wxChar *time) } } - // try all time formats we may think about starting with the standard one - const wxChar *result = ParseFormat(time, _T("%X")); + // try all time formats we may think about in the order from longest to + // shortest + + // 12hour with AM/PM? + const wxChar *result = ParseFormat(time, _T("%I:%M:%S %p")); + if ( !result ) { // normally, it's the same, but why not try it? @@ -3381,8 +3402,8 @@ const wxChar *wxDateTime::ParseTime(const wxChar *time) if ( !result ) { - // 12hour with AM/PM? - result = ParseFormat(time, _T("%I:%M:%S %p")); + // 12hour with AM/PM but without seconds? + result = ParseFormat(time, _T("%I:%M %p")); } if ( !result ) @@ -3393,8 +3414,8 @@ const wxChar *wxDateTime::ParseTime(const wxChar *time) if ( !result ) { - // 12hour with AM/PM but without seconds? - result = ParseFormat(time, _T("%I:%M %p")); + // just the hour and AM/PM? + result = ParseFormat(time, _T("%I %p")); } if ( !result ) @@ -3405,8 +3426,9 @@ const wxChar *wxDateTime::ParseTime(const wxChar *time) if ( !result ) { - // just the hour and AM/PM? - result = ParseFormat(time, _T("%I %p")); + // parse the standard format: normally it is one of the formats above + // but it may be set to something completely different by the user + result = ParseFormat(time, _T("%X")); } // TODO: parse timezones @@ -3706,4 +3728,4 @@ size_t wxDateTimeWorkDays::DoGetHolidaysInRange(const wxDateTime& dtStart, return holidays.GetCount(); } - +#endif // wxUSE_DATETIME