Python 如何在Python中以字符串格式获取ISO 8601日期?
ISO 8601是国际标准化组织制定的日期和时间的表示方式,它是一种固定的格式,可以用于跨越不同的国家和文化之间的通信。在Python中,我们可以使用标准库中的datetime模块来生成ISO 8601格式的日期字符串。下面我们将分别介绍如何生成带时区和不带时区的ISO 8601日期字符串。
阅读更多:Python 教程
生成带时区的ISO 8601日期字符串
要生成带时区的ISO 8601日期字符串,我们需要使用datetime模块的datetime和timezone子模块。示例如下:
from datetime import datetime, timezone
now = datetime.now(timezone.utc)
iso_date = now.isoformat()
print(iso_date)
输出结果为:
2021-10-20T03:13:45.270913+00:00
在上述代码中,我们首先使用datetime.now()函数获取当前本地时间,然后使用timezone.utc指定时区为UTC时间,最后使用datetime对象的isoformat()方法生成ISO 8601格式的字符串。
ISO 8601格式的字符串包含日期和时间,以及时区信息。其中,日期以“年-月-日”(YYYY-MM-DD)的形式表示,时间以“时:分:秒.毫秒”的形式表示,时区信息以“+/-时区差”(±HH:MM)的形式表示。在上述示例中,“+00:00”表示时区为UTC时间。
需要注意的是,datetime.now()函数获取到的是本地时间,而非UTC时间。因此,在生成ISO 8601日期字符串时需要加上timezone.utc指定时区为UTC时间。如果不加指定时区,则会生成本地时间的ISO 8601日期字符串。
生成不带时区的ISO 8601日期字符串
如果我们只需要生成不带时区的ISO 8601日期字符串,只需要将上述示例中的timezone.utc替换为None即可。示例如下:
from datetime import datetime
now = datetime.utcnow()
iso_date = now.isoformat() + "Z"
print(iso_date)
输出结果为:
2021-10-20T03:13:45.270913Z
在上述代码中,我们首先使用datetime.utcnow()函数获取当前UTC时间,然后使用datetime对象的isoformat()方法生成ISO 8601格式的字符串。需要注意的是,在生成ISO 8601日期字符串时,我们需要手动添加一个“Z”表示时区为零时区。
总结
通过使用datetime模块的datetime和timezone子模块,我们可以在Python中方便地生成ISO 8601格式的日期字符串。如果需要生成带时区的ISO 8601日期字符串,需要使用timezone.utc指定时区为UTC时间;如果需要生成不带时区的ISO 8601日期字符串,只需要将timezone.utc替换为None即可。