python - Python 中的 ISO 时间 (ISO 8601)

标签 python datetime iso8601

我有一个文件。在 Python 中,我想占用它的创建时间,并将其转换为 ISO time (ISO 8601) string 同时保留它是在 Eastern Time Zone 中创建的事实。 (美国东部时间)

如何获取文件的 ctime 并将其转换为指示东部时区的 ISO 时间字符串(并在必要时考虑夏令时)?

最佳答案

本地到 ISO 8601:

import datetime
datetime.datetime.now().isoformat()
>>> 2020-03-20T14:28:23.382748

UTC 到 ISO 8601:

import datetime
datetime.datetime.utcnow().isoformat()
>>> 2020-03-20T01:30:08.180856

本地到 ISO 8601,无微秒:

import datetime
datetime.datetime.now().replace(microsecond=0).isoformat()
>>> 2020-03-20T14:30:43

UTC 到 ISO 8601 以及时区信息 (Python 3):

import datetime
datetime.datetime.utcnow().replace(tzinfo=datetime.timezone.utc).isoformat()
>>> 2020-03-20T01:31:12.467113+00:00

UTC 到 ISO 8601,本地时区信息不带微秒(Python 3):

import datetime
datetime.datetime.now().astimezone().replace(microsecond=0).isoformat()
>>> 2020-03-20T14:31:43+13:00

具有时区信息的 ISO 8601 本地 (Python 3):

import datetime
datetime.datetime.now().astimezone().isoformat()
>>> 2020-03-20T14:32:16.458361+13:00

请注意,在 UTC 时间使用 astimezone() 时存在错误。这给出了不正确的结果:

datetime.datetime.utcnow().astimezone().isoformat() #Incorrect result

对于 Python 2,请参阅并使用 pytz .

关于python - Python 中的 ISO 时间 (ISO 8601),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2150739/

相关文章:

c# GMT 时间等同于 UTC 时间?

java - 如何在 Java 中检查日期时间之前和之后的日期,以了解 MySQL 中的 UTC 日期,但对于多个时区?

asp.net - ASP.NET 中 Excel 工作表的日期时间解析

java - 如何将 ISO 8601 句点转换为人类可读的字符串 [Android Studio]?

python - 按 Pandas Dataframe 中列中的条目进行分组

python - 如何在 matplotlib 中旋转 xticklabels 以使每个 xticklabel 之间的间距相等?

sql-server - MS SQL Server 2012 将日期时间导出为无法导入的脚本

azure - Azure 服务总线队列的 "Default message time to live"的值是多少?

python - 在 C 中嵌入 python - 分发

javascript - 如何将 JavaScript `for` 循环转换为 Python?