我想知道某些日期之间发送了多少封电子邮件。日期标题如下所示:
Date: Tue, 20 Jan 2015 15:00:37 +0000
当计算其他东西时,我这样编码会在计数中加一:
if msg['From'] == 'example@example.com':
count+=1
但是,当我必须计算某些日期之间发送了多少封电子邮件时,会变得很困难。它会是这样的:
date1 =星期二,2015年1月18日15:00:37 date2 = Wed,2015年1月23日15:00:37
if msg['Date'] < date2 and msg['Date'] > date1:
count+=1
我不认为python会认为它是日期。因此&gt; 或&lt; 运算符不起作用?
答案 0 :(得分:0)
您可以使用dateutil或datetime将字符串解析为datetime对象并进行比较:
from dateutil import parser
date1= "Tue, 18 Jan 2015 15:00:37"
date2="Wed, 23 Jan 2015 15:00:37"
date1 = parser.parse(date1)
date2 = parser.parse(date2)
msg = {"Date": "Tue, 19 Jan 2015 15:00:37 +0000"}
if date2 >= parser.parse(msg['Date']).replace(tzinfo=None) > date1:
print msg['Date']
您需要pip install python-dateutil
,因为它不在标准库中。
您的日期字符串似乎包含时区,但日期1和2不包括,因此您无法比较偏移感知和偏移日期时间。