본문 바로가기
Python/Python FAQ

Python 파이썬에서의 ISO 시간 (ISO 8601), ISO time (ISO 8601) in Python

by 베타코드 2023. 9. 8.
반응형

질문


나는 파일을 가지고 있다. Python에서, 나는 이 파일의 생성 시간을 가져와서 ISO 시간 (ISO 8601) 문자열로 변환하고, 이 파일이 동부 시간대 (ET)에서 생성되었다는 사실을 보존하고 싶다.

파일의 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

TimeZone 정보와 함께 UTC에서 ISO 8601로 (Python 3):

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

마이크로초 없이 Local TimeZone 정보와 함께 UTC에서 ISO 8601로 (Python 3):

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

TimeZone 정보와 함께 로컬에서 ISO 8601로 (Python 3):

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

astimezone()을 UTC 시간에 사용할 때 버그가 있음을 유의하세요. 이는 잘못된 결과를 제공합니다:

datetime.datetime.utcnow().astimezone().isoformat() #잘못된 결과

Python 2의 경우, pytz를 참조하고 사용하세요.

반응형

댓글