programing

JSON 날짜 문자열을 Python 날짜/시간으로 변환

randomtip 2023. 4. 1. 15:15
반응형

JSON 날짜 문자열을 Python 날짜/시간으로 변환

날짜를 JSON으로 변환할 때 javascript는 다음 형식으로 날짜를 저장합니다.

2012-05-29T19:30:03.283Z

그러나 python datetime 객체에 어떻게 넣어야 할지 잘 모르겠습니다.저도 해봤어요.

# Throws an error because the 'Z' isn't accounted for:
datetime.datetime.strptime(obj[key], '%Y-%m-%dT%H:%M:%S.%f')

# Throws an error because '%Z' doesn't know what to do with the 'Z'
#  at the end of the string
datetime.datetime.strptime(obj[key], '%Y-%m-%dT%H:%M:%S.%f%Z')

javascript가 문자열을 공식 ISO 형식으로 저장하고 있다고 생각하기 때문에 python을 구할 수 있는 방법이 있을 것 같습니다.datetime.strptime()읽을까?

다음 형식을 사용해 보십시오.

%Y-%m-%dT%H:%M:%S.%fZ

예를 들어 다음과 같습니다.

>>> datetime.datetime.strptime('2012-05-29T19:30:03.283Z', '%Y-%m-%dT%H:%M:%S.%fZ')
datetime.datetime(2012, 5, 29, 19, 30, 3, 283000)

ZUTC 시간으로 해석해야 하므로 무시해도 정보가 손실되지 않습니다.다음 정보는 http://www.w3.org/TR/NOTE-datetime 에서 찾을 수 있습니다.

패키지를 인스톨 할 수 있는 경우는, 을 사용해 주세요.입력 형식은 다음 URL에서 추측할 수 있습니다.parse; 비활성 입력은 올바르게 해석할 수 있습니다.그러나 형식을 추측하는 것은 명시적으로 지정하는 것보다 훨씬 느립니다.

타임존 없음

타임존을 설정하지 않는 것이 좋습니다.이 타임존은 내부적으로 UTC로만 표현하면 문제 없습니다.

>>> dateutil.parser.parse('2012-05-29T19:30:03.283Z', ignoretz=True)
datetime.datetime(2012, 5, 29, 19, 30, 3, 283000)

표준 시간대 포함

주의해 주세요.datetime.datetime.strptime, 이 디폴트콜은parse는 UTC 시간대를 자동으로 유지합니다.

>>> import dateutil.parser
>>> dateutil.parser.parse('2012-05-29T19:30:03.283Z')
datetime.datetime(2012, 5, 29, 19, 30, 3, 283000, tzinfo=tzutc())

동등성을 위한 테스트 어설션을 수행해야 하는 경우 예상 객체는 다음과 같이 구성할 수 있습니다.

>>> import datetime
>>> datetime.datetime(2012, 5, 29, 19, 30, 3, 283000, tzinfo=dateutil.tz.tzutc())
import datetime

# Assuming you have a string in the format
date_string = "2012-05-29T19:30:03.283Z"

# You can build a datetime object with
date_object = datetime.fromisoformat(date_string)

언급URL : https://stackoverflow.com/questions/10805589/convert-json-date-string-to-python-datetime

반응형