0

アトムフィードを解析しています。フィードに更新されたタグがあります。その値は2012-05-20T02:24:56Zです。この情報をこのようにテーブルに挿入します。

cursor.execute('Insert into Timing (LastUpdatedTime) Values(?)',
                (testFeed.feed.updated,))

その後、テーブルから値を取得し、この方法で日時に変換します

cursor.execute("Select LastUpdatedTime from Timing")
lastUpdatedTime=datetime.strptime(list(cursor.fetchone())[0],
                '%Y-%m-%dT%H:%M:%SZ').isoformat()

lastUpdatedTime の値は2012-05-20T02:24:56 です

testFeed.feed.updated の値を lastUpdatedTime と比較して、フィードに新しいエントリがあるかどうかを確認すると、比較によって理解できない出力が得られます。

print testFeed.feed.updated == lastUpdatedTime

これは偽を返します print testFeed.feed.updated > lastUpdatedTime

これは true を返します。比較時の変数の値: testFeed.feed.updated= 2012-05-20T02:24:56Z lastUpdatedTime= 2012-05-20T02:24:56

データベースの列はテキスト型です。

testFeed.feed.updated のタイプは unicode です

lastUpdatedTime の型は文字列です

Python 2.7.2を使用し、Ubuntu 11.10で作業しています

Unicode オブジェクトを datetime に変換した後に機能し currentFeedTime=datetime.strptime(str(testfeed.feed.updated),'%Y-%m-%dT%H:%M:%SZ').isoformat()、前回との比較を行います。

4

1 に答える 1

1

testFeed.feed.updated最後に余分な「Z」があるので、あなたが見ている振る舞いは私には理にかなっています。

そうは言っても、日付と時刻の比較を行う場合は、両方の日付をに変換したほうがよいと思いますdatetime.datetime

にとってlastUpdatedTime

cursor.execute("Select LastUpdatedTime from Timing")
# Note that I'm not converting this to a string.
lastUpdatedTime=datetime.strptime(list(cursor.fetchone())[0],'%Y-%m-%dT%H:%M:%SZ')

そしての代わりにtestFeed.feed.updated

feedUpdatedTime=datetime.strptime(testFeed.feed.updated,'%Y-%m-%dT%H:%M:%SZ')

次に、2つを比較します。

print feedUpdatedTime == lastUpdatedTime
于 2012-05-20T16:55:20.467 に答える