【问题标题】:Wants to convert python datetime.datetime(2021, 7, 28, 9, 39, 5, 601831) to "2021-07-28 09:39:601831+00:00" [closed]想要将 python datetime.datetime(2021, 7, 28, 9, 39, 5, 601831) 转换为 "2021-07-28 09:39:601831+00:00" [关闭]
【发布时间】:2021-10-04 01:19:36
【问题描述】:

我确实有 python 日期时间对象作为 datetime.datetime(2021, 7, 28, 9, 39, 5, 601831),我需要转换为以下格式

"2021-07-28 09:39:601831+00:00"

任何信息都会很有帮助。提前致谢。

【问题讨论】:

  • 你问的是如何格式化日期,而不是转换它。 datetime 是二进制类型,它本身没有格式

标签: python python-3.x pytz


【解决方案1】:

我不使用 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'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-24
    • 1970-01-01
    • 1970-01-01
    • 2021-07-05
    • 1970-01-01
    相关资源
    最近更新 更多