首页 > 解决方案 > 在python中按日期时间对文件进行排序

问题描述

我有一个电子邮件对象列表。它包含以下格式的 DateTime:

Thu, 17 Dec 2020 15:30:15 +0100

当我尝试使用 sorted() 对列表进行排序时,它仅按时间排序。

sorted_emails = sorted(emails,key=lambda email: email['Date'],reverse=True)

for item in sorted_emails:
    print(item['Date'])

输出:

Wed, 16 Dec 2020 21:59:45 +0100
Wed, 16 Dec 2020 21:58:22 +0100
Wed, 16 Dec 2020 12:29:39 +0100
Wed, 16 Dec 2020 12:29:13 +0100
Wed, 16 Dec 2020 12:28:41 +0100
Wed, 16 Dec 2020 12:26:50 +0100
Wed, 16 Dec 2020 12:26:17 +0100
Wed, 16 Dec 2020 12:25:57 +0100
Thu, 17 Dec 2020 15:30:15 +0100
Sat, 12 Dec 2020 21:17:35 +0100

我将如何让它对日期进行排序?

标签: pythonsortingemail

解决方案


您必须解析日期并使用datetime.datetime.strptime. 尝试这样的事情:

import datetime
dateformat =  "%a, %d %b %Y %H:%M:%S %z"
for email in emails:
    email['parsed_date'] = datetime.datetime.strptime(email['date'], dateformat)

然后按电子邮件['parsed_date']排序。

有关“格式化指令”的语法,请参见此处https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior


推荐阅读