fix bug with parsing negative time zones in ParseRfc822Date()

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50955 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2007-12-30 23:35:40 +00:00
parent 8bb0880114
commit 1cf57808cb
4 changed files with 21 additions and 5 deletions

View File

@@ -301,6 +301,7 @@ wxX11:
All: All:
- Fixed bug with parsing some dates in wxDateTime (Bob Pesner) - Fixed bug with parsing some dates in wxDateTime (Bob Pesner)
- Fixed bug with parsing negative time zones in wxDateTime::ParseRfc822Date()
All (GUI): All (GUI):

View File

@@ -418,7 +418,16 @@ public:
{ {
public: public:
TimeZone(TZ tz); TimeZone(TZ tz);
TimeZone(wxDateTime_t offset = 0) { m_offset = offset; }
// create time zone object with the given offset
TimeZone(long offset = 0) { m_offset = offset; }
static TimeZone Make(long offset)
{
TimeZone tz;
tz.m_offset = offset;
return tz;
}
long GetOffset() const { return m_offset; } long GetOffset() const { return m_offset; }

View File

@@ -2971,7 +2971,7 @@ const wxChar *wxDateTime::ParseRfc822Date(const wxChar* date)
// the spec was correct, construct the date from the values we found // the spec was correct, construct the date from the values we found
Set(day, mon, year, hour, min, sec); Set(day, mon, year, hour, min, sec);
MakeFromTimezone(TimeZone((wxDateTime_t)(offset*SEC_PER_MIN))); MakeFromTimezone(TimeZone::Make(offset*SEC_PER_MIN));
return p; return p;
} }

View File

@@ -750,17 +750,23 @@ void DateTimeTestCase::TestParceRFC822()
{ {
{ {
_T("Sat, 18 Dec 1999 00:46:40 +0100"), _T("Sat, 18 Dec 1999 00:46:40 +0100"),
{ 17, wxDateTime::Dec, 1999, 23, 46, 40, 0.0, wxDateTime::Inv_WeekDay, 0, 0 }, { 17, wxDateTime::Dec, 1999, 23, 46, 40 },
true true
}, },
{ {
_T("Wed, 1 Dec 1999 05:17:20 +0300"), _T("Wed, 1 Dec 1999 05:17:20 +0300"),
{ 1, wxDateTime::Dec, 1999, 2, 17, 20, 0.0, wxDateTime::Inv_WeekDay, 0, 0 }, { 1, wxDateTime::Dec, 1999, 2, 17, 20 },
true true
}, },
{ {
_T("Sun, 28 Aug 2005 03:31:30 +0200"), _T("Sun, 28 Aug 2005 03:31:30 +0200"),
{ 28, wxDateTime::Aug, 2005, 1, 31, 30, 0.0, wxDateTime::Inv_WeekDay, 0, 0 }, { 28, wxDateTime::Aug, 2005, 1, 31, 30 },
true
},
{
_T("Sat, 18 Dec 1999 10:48:30 -0500"),
{ 18, wxDateTime::Dec, 1999, 15, 48, 30 },
true true
}, },
}; };