Option: isoformat()
Python's datetime
does not support the military timezone suffixes like 'Z' suffix for UTC. The following simple string replacement does the trick:
In [1]: import datetime In [2]: d = datetime.datetime(2014, 12, 10, 12, 0, 0) In [3]: str(d).replace('+00:00', 'Z') Out[3]: '2014-12-10 12:00:00Z'
str(d)
is essentially the same as d.isoformat(sep=' ')
See: Datetime, Python Standard Library
Option: strftime()
Or you could use strftime
to achieve the same effect:
In [4]: d.strftime('%Y-%m-%dT%H:%M:%SZ') Out[4]: '2014-12-10T12:00:00Z'
Note: This option works only when you know the date specified is in UTC.
See: datetime.strftime()
Additional: Human Readable Timezone
Going further, you may be interested in displaying human readable timezone information, pytz
with strftime
%Z
timezone flag:
In [5]: import pytz In [6]: d = datetime.datetime(2014, 12, 10, 12, 0, 0, tzinfo=pytz.utc) In [7]: d Out[7]: datetime.datetime(2014, 12, 10, 12, 0, tzinfo=<UTC>) In [8]: d.strftime('%Y-%m-%d %H:%M:%S %Z') Out[8]: '2014-12-10 12:00:00 UTC'