我不使用 Python。但我知道这些事情是有据可查的。阅读文档通常是解决问题的最快和最简单的方法。您想要的格式是 ISO8601 格式的变体。
datetime documentation 有一个可以准确回答此问题的示例。 isoformat 方法用于将日期格式化为 ISO8601 格式。
>>> from datetime import tzinfo, timedelta, datetime
>>> datetime(2019, 5, 18, 15, 17, tzinfo=timezone.utc).isoformat()
'2019-05-18T15:17:00+00:00'
而__str__()等价于`isoformat(' '):
datetime.__str__()
对于日期时间实例 d,str(d) 等价于 d.isoformat(' ')。
这意味着以任何方式格式化 datetime 足以产生您想要的:
>>> d=datetime.datetime(2019, 5, 18, 15, 17, tzinfo=timezone.utc)
>>> str(d)
'2019-05-18 15:17:00+00:00'
>>> 'The time is %s' % d
'The time is 2019-05-18 15:17:00+00:00'
文档还显示astimezone 可用于创建具有特定时区的新datetime
>>> d=datetime.datetime(2021, 7, 28, 9, 39, 5, 601831)
>>> d1=d.astimezone(timezone.utc)
>>> 'The time is %s' % d1
'The time is 2021-07-28 06:39:05.601831+00:00'