2010-05-05 63 views
1

我目前已經設置了一個Python腳本,它使用feedparser來讀取訂閱源並對其進行解析。不過,我最近遇到了日期解析的問題。我正在閱讀的Feed包含<modified>2010-05-05T24:17:54Z</modified> - 以Python作爲日期時間對象出現 - 2010-05-06 00:17:54。注意這個差異:5月5日修改了feed條目,而python將其作爲第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

因此,假設它正在做正確的事情,我該如何糾正我的Python腳本來處理? – yydl 2010-05-05 01:20:38

+0

@約瑟夫,我不會做任何事情,因爲Python似乎在做正確的事情。如果它非常重要,那麼您需要記下該Feed正在使用的時區,python正在生成的時區以及您真正想要的時區,然後使用datetime庫正確修改內容。但是除非你知道你使用的是什麼單位(即你使用的是什麼時區),否則你將無法解決問題。 – wisty 2010-05-05 10:07:24

+0

@joseph同意wisty,python正在做正確的事情,真的沒有什麼可以解決的。 – dlamotte 2010-05-05 13:08:14

0

我認爲今天24點17分明智地解析爲明天00:17 ....我認爲你很好地處理了製作者的錯誤。

+0

不完全:我知道生產者真的意味着今天00:17。明天將是未來... – yydl 2010-05-05 14:58:22