2010-05-05 2 views
1

현재 피드를 읽고 파싱하기 위해 feedparser을 사용하는 Python 스크립트를 설정했습니다. 그러나, 최근에 날짜 분석과 관련된 문제가 발생했습니다. 내가 읽고있는 피드는 <modified>2010-05-05T24:17:54Z</modified>입니다. 파이썬에서는 datetime 객체로 나타납니다. - 2010-05-06 00:17:54. 불일치에 주목하자 : 피드 항목은 5 월 5 일에 수정되었고 파이썬은 6 번째 항목으로 읽었습니다.ATOM 피드를 올바르게 구문 분석합니다.

그래서이 문제가 발생하는 이유는 무엇입니까? ATOM 피드 (즉, 피드를 만든 사람)가 시간을 24:17:54로 잘못 넣었습니까? 아니면 Python 스크립트가 잘못 처리 한 것입니까?

그리고이 문제를 해결할 수 있습니까?

답변

1

rfc에는 몇 가지 흥미로운 특수한 경우가 있지만 (http://tools.ietf.org/html/rfc3339) 일반적으로 00:00:60과 00:00:59에 대해 윤초를 허용합니다. 그것은 합법적 일 수 있습니다. 내 추측은 그 일을 "옳은 일"입니다. 모든 정직한면에서, 날짜/시간은 DST 및 현지 시간대와 같은 이유로 인해 지저분 해집니다. 그 24시 17 분 54 초면, 그것은 결국 옳은 일이 될 수 있습니다.

+0

그래서 옳은 일을하고 있다고 가정하면, 이것을 처리하기 위해 어떻게 파이썬 스크립트를 수정할 수 있습니까? – yydl

+0

@Joseph, 파이썬이 옳은 일을하는 것처럼 보이므로 아무 것도하지 않겠습니다. 정말로 중요한 경우, 피드가 사용하는 표준 시간대, 파이썬이 생성하는 표준 시간대 및 정말로 원하는 표준 시간대를 적어 둔 다음 datetime 라이브러리를 사용하여 올바르게 수정하십시오. 그러나 사용하고있는 단위 (즉, 사용중인 시간대)를 알지 못하면 문제를 해결할 수 없습니다. – wisty

+0

@joseph는 wisty와 동의했고, python은 올바른 일을하고 있습니다. – dlamotte

0

오늘 24시 17 분은 내일 00시 17 분에 지능적으로 분석됩니다. 나는 당신이 프로듀서의 버그를 잘 처리하고 있다고 생각합니다.

+0

아직 아닙니다 : 저는 생산자가 오늘 00:17을 의미한다는 사실을 압니다. 내일이 내일이 될거야. – yydl