X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/070895565ea20aab321e10d96ea92fac2e6ccd17..a50c5fccdc7151f830e03b49deb5f61cb2783ccf:/src/common/datetime.cpp diff --git a/src/common/datetime.cpp b/src/common/datetime.cpp index 98e755a601..f6ad3f6259 100644 --- a/src/common/datetime.cpp +++ b/src/common/datetime.cpp @@ -93,17 +93,17 @@ const long wxDateTime::TIME_T_FACTOR = 1000l; template<> void wxStringReadValue(const wxString &s , wxDateTime &data ) { - data.ParseFormat(s,wxT("%Y-%m-%d %H:%M:%S")) ; + data.ParseFormat(s,"%Y-%m-%d %H:%M:%S", NULL); } template<> void wxStringWriteValue(wxString &s , const wxDateTime &data ) { - s = data.Format(wxT("%Y-%m-%d %H:%M:%S")) ; + s = data.Format("%Y-%m-%d %H:%M:%S"); } wxCUSTOM_TYPE_INFO(wxDateTime, wxToStringConverter , wxFromStringConverter) -#endif +#endif // wxUSE_EXTENDED_RTTI // // ---------------------------------------------------------------------------- @@ -138,13 +138,6 @@ wxCUSTOM_TYPE_INFO(wxDateTime, wxToStringConverter , wxFromStringCon #include #endif -// define a special symbol for VC8 instead of writing tests for 1400 repeatedly -#ifdef __VISUALC__ - #if __VISUALC__ >= 1400 - #define __VISUALC8__ - #endif -#endif - #if !defined(WX_TIMEZONE) && !defined(WX_GMTOFF_IN_TM) #if defined(__WXPALMOS__) #define WX_GMTOFF_IN_TM @@ -383,11 +376,13 @@ wxDateTime::Country wxDateTime::ms_country = wxDateTime::Country_Unknown; // debugger helper: shows what the date really is #ifdef __WXDEBUG__ -extern const wxChar *wxDumpDate(const wxDateTime* dt) +extern const char *wxDumpDate(const wxDateTime* dt) { - static wxChar buf[128]; + static char buf[128]; - wxStrcpy(buf, dt->Format(_T("%Y-%m-%d (%a) %H:%M:%S"))); + wxString fmt(dt->Format("%Y-%m-%d (%a) %H:%M:%S")); + wxStrncpy(buf, fmt + " (" + dt->GetValue().ToString() + " ticks)", + WXSIZEOF(buf)); return buf; } @@ -2852,8 +2847,9 @@ wxDateTime::ParseRfc822Date(const wxString& date, wxString::const_iterator *end) min = (wxDateTime_t)(min + *p++ - _T('0')); wxDateTime_t sec = 0; - if ( *p++ == _T(':') ) + if ( *p == _T(':') ) { + p++; if ( !wxIsdigit(*p) ) { return NULL; @@ -4595,4 +4591,30 @@ WXDLLIMPEXP_BASE void wxPrevWDay(wxDateTime::WeekDay& wd) : (wxDateTime::WeekDay)(wd - 1); } +#ifdef __WXMSW__ + +wxDateTime& wxDateTime::SetFromMSWSysTime(const SYSTEMTIME& st) +{ + return Set(st.wDay, + wx_static_cast(wxDateTime::Month, wxDateTime::Jan + st.wMonth - 1), + st.wYear, + 0, 0, 0); +} + +void wxDateTime::GetAsMSWSysTime(SYSTEMTIME* st) const +{ + const wxDateTime::Tm tm(GetTm()); + + st->wYear = (WXWORD)tm.year; + st->wMonth = (WXWORD)(tm.mon - wxDateTime::Jan + 1); + st->wDay = tm.mday; + + st->wDayOfWeek = + st->wHour = + st->wMinute = + st->wSecond = + st->wMilliseconds = 0; +} +#endif // __WXMSW__ + #endif // wxUSE_DATETIME