2013-02-27 3 views
6

저는 JSON 웹 서비스에서 기본 파이썬 날짜/시간 문자열 형식을 사용하고 있습니다.표준 시간대 문자열 표준 시간대 함께

그런 다음 실제 datetime과 비교하려고합니다. 또한 pytz.utc과 함께 시간대를 사용하고 있습니다.

print date 
2013-02-26 21:28:37.261134+01:00 

이 (pytz와 시간대에 대한 편집) 날짜 시간에 내 문자열을 변환하려고 :

if datetime.strptime(date, '%Y-%m-%d %H:%M:%S.%f+%Z') < datetime.now(pytz.utc): 

불행하게도, 그것은 작동하지 않습니다

여기 내 문자열 날짜입니다.

ValueError: time data '2013-02-26 21:28:37.261134+01:00' does not match format '%Y-%m-%d %H:%M:%S.%f%Z' 

는 사람이 내 날짜를 사용하려면 strptime 형식으로 나에게 올바른 구문을 말할 수 있습니까?

+0

인식하는 표준 시간대를'datetime.now()'와 비교할 수는 없지만, 표준 시간대에 시간대를 지정해야합니다. [파이썬에서 알 수없는 datetime 시간대를 인식시키는 방법]을 참조하십시오. (0120-13996) –

+0

중복에 대해 정확합니다. 감사합니다. 구글은 나에게 아무것도주지 않았다 ... 타임 존에서, 나는 실제로'datetime.now (pytz.utc)'를 내 코드에서 사용하고 있었다. 잘못된 것을 유감스럽게 생각합니다 .... – Arthur

답변

3

기본적으로 datetime 모듈은 사용 가능한 시간대가 무엇인지 미리 알지 못하기 때문입니다. 그것은 절름발이입니다.

dateutil을 사용하는 것이 좋습니다. 그것은 제 3 자 꾸러미이지만 문 밖으로 당신의 문자열을 구문 분석합니다.

>>> import dateutil.parser 
>>> dateutil.parser.parse('2013-02-26 21:28:37.261134+01:00')                                                     
datetime.datetime(2013, 2, 26, 21, 28, 37, 261134, tzinfo=tzoffset(None, 3600))