使用不同的字符串格式对日期时间对象列表进行排序

问题描述

我正在使用Datetime生成一个随机日期列表,并且需要显示为dd / mm / yy(例如3月24日为20/03/20)。我可以使用strftime对其进行排序,但是它会从左到右破坏排序,因此需要花费一天的时间并按该顺序排序。

获取日期时间对象,转换为用于格式化的字符串,然后将该字符串转换回日期时间对象以进行排序,似乎有点过头。

如何正确排序此列表中的日期?

先谢谢您!

import random
from datetime import datetime,timedelta

user_test_date = datetime.strptime("12/12/21",'%d/%m/%y')
ledger = []

''' Create date for transaction '''
def date_gen():
    date_step = random.randrange(1,60) # Set range of 2 months
    raw_date = user_test_date + timedelta(days =- date_step) # Alter days value each loop 
    date = raw_date.strftime('%w %b %y') #Change format of date
    
    ledger.append(date)
    ledger.sort(key=lambda item: item[0],reverse=True) #Sort list of dates

for i in range(10):
    date_gen()

print(ledger)

解决方法

此处:

date = raw_date.strftime('%w %b %y') #Change format of date

您将datetime对象转换为str。尝试跳过此行,并将date_gen中的最后一行替换为ledger.sort()

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...