Python - printing UTC dates in ISO8601 format with time zone
June 09, 2017 [Programming, Python, Tech]By default, when you make a UTC date from a Unix timestamp in Python and print it in ISO format, it has no time zone:
$ python3 >>> from datetime import datetime >>> datetime.utcfromtimestamp(1496998804).isoformat() '2017-06-09T09:00:04'
Whenever you talk about a datetime, I think you should always include a time zone, so I find this problematic.
The solution is to mention the timezone explicitly when you create the datetime:
$ python3 >>> from datetime import datetime, timezone >>> datetime.fromtimestamp(1496998804, tz=timezone.utc).isoformat() '2017-06-09T09:00:04+00:00'
Note, including the timezone explicitly works the same way when creating a datetime in other ways:
$ python3 >>> from datetime import datetime, timezone >>> datetime(2017, 6, 9).isoformat() '2017-06-09T00:00:00' >>> datetime(2017, 6, 9, tzinfo=timezone.utc).isoformat() '2017-06-09T00:00:00+00:00'