반응형
질문
나는 파일을 가지고 있다. 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를 참조하고 사용하세요.
반응형
댓글