如何查看日期之间发送的电子邮件数量?

时间:2015-01-20 16:41:19

标签: python

我想知道某些日期之间发送了多少封电子邮件。日期标题如下所示:

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; 运算符不起作用?

1 个答案:

答案 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不包括,因此您无法比较偏移感知和偏移日期时间。