我有一个文件。在 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/