Handle TZ change in iso8601 >=0.1.12

The iso8601 lib introduced a change such that if running on
python 3.2 or later it internally uses the python timezone
information instead of its own implementation.
This does not change direct date handling, but when converting
this value there is a slight difference where now python 2.x
will show UTC times as "UTC", but on python 3 they will end up
with "UTC+00:00".
The to_primitive call for DateTime fields was doing an exact match
on "UTC" to determine whether to include "Z" in the resulting string.
This updates that handling to recognize either of the new values.

Closes-bug: #1744160
Change-Id: I9fcc55b36178ff88795e1d8e14da349e338a7392
This commit is contained in:
junboli 2018-01-19 18:53:21 +08:00 committed by junbo.li
parent a07d522970
commit e10c4b2f5d
1 changed files with 2 additions and 1 deletions

View File

@ -81,7 +81,8 @@ def isotime(at=None, subsecond=False):
if not subsecond
else _ISO8601_TIME_FORMAT_SUBSECOND)
tz = at.tzinfo.tzname(None) if at.tzinfo else 'UTC'
st += ('Z' if tz == 'UTC' else tz)
# Need to handle either iso8601 or python UTC format
st += ('Z' if tz in ['UTC', 'UTC+00:00'] else tz)
return st