Python,按日期时间排序的简单字符串

时间:2015-03-13 12:49:01

标签: python datetime

我已经获得了记录数量(作为字符串)和那些字符串:

   5
   01.06.2012 09:45 a a a
   01.06.2012 08:00 b b b
   21.12.2012 21:00 c c c
   13.07.2011 17:00 d d d
   26.05.2012 08:00 e e e

我想按日期订购它们并打印订购。我知道我应该以某种方式利用strptime,但我希望有人能告诉我如何。这些行被写入控制台(标准输入)。

谢谢!

2 个答案:

答案 0 :(得分:1)

试试这个:

import datetime

a_list = ["01.06.2012 09:45 a a a", "01.06.2012 08:00 b b b", "21.12.2012 21:00 c c c", "13.07.2011 17:00 d d d", "26.05.2012 08:00 e e e"]

def sorting(x):
    date = " ".join(x.split()[:2])
    return datetime.datetime.strptime(date, '%d.%m.%Y %H:%M')

print sorted(a_list, key=sorting)

此代码只使用自定义排序函数来拆分字符串,只获取具有日期的部分,然后使用strptime解析它。

答案 1 :(得分:0)

也许您可以使用sort()

listLength = input()
timeList = []
while listLength:
    timeStr = raw_input()
    timeList.append(timeStr)
    listLength = listLength - 1

timeList.sort()
print '-' * 10
for timeStr in timeList:
    print timeStr