私は単純なRSSリーダーを作成しています。最後に読み取られた最新のエントリの日付をnewest_entry_datetime
に保存して、チャンネルをもう一度読むとnewest_entry_datetime
の入力時刻と<
という記号を比較しています.Pythonはdatetimeを認識して比較するのに十分なほどスマートです。Pythonの日付時刻と<戻り値が間違っています
時間部分が変化しているが、翌日には最新の日付が古いものとして実装されています。
import datetime
import locale
#locale.setlocale(locale.LC_ALL, 'English_United States.1252')
newest_entry_datetime = 'Thu, 21 Dec 2017 16:02:03 CET'
entry_published = 'Fri, 22 Dec 2017 08:19:15 CET'
#dt_newest = datetime.datetime.strptime (newest_entry_datetime, "%a, %d %b %Y %H:%M:%S %Z")
if (entry_published <= newest_entry_datetime):
print('Entry date is older')
else:
print('Entry date is NEW')
このようなコードでは、結果が得意です:"Entry date is older"
これは間違っています。
第二のアイデアは、日時に日付スタンプを変換することでしたが、私は取得しています:
ValueError: time data 'Thu, 21 Dec 2017 16:02:03 CET' does not match format '%a, %d %b %Y %H:%M:%S %Z'
私はアメリカにロケールを変更します場合でも。
正しく行う方法がわかりません。助けてもらえますか?
貼り付けたコードにエラーがありません – user1767754
タイムスタンプをエポックに変換して比較するのはなぜですか? –
ちょうど数日前にCETについて同じ質問がありました。これは%Zで定義されていません。 –