将一组日期转换为日期时间格式并进行比较

时间:2019-02-18 11:24:26

标签: python datetime

我想将日期和时间字符串数组转换为datetime对象的数组,以便我可以比较日期并找到最新的日期(将来最多的日期)。

首先,我进行转换,然后合并日期和时间。 我正在努力创建datetimes的数组,经过研究后,我不确定是否可能。

dates = ['2019-02-18','2019-02-18','2019-02-18','2019-02-18','2019-02-18','2019-02-18','2019-02-18','2019-02-18','2019-02-19','2019-02-19']
times = ['06:15', '18:30', '19:45', '14:20', '16:10','06:10', '18:35', '19:40', '14:25', '16:15' ]
dates_count = len(dates)  
dates_obj = []
times_obj = []

for i in range(dates_count):
    dates_obj.append(datetime.strptime(dates[i], '%Y-%m-%d'))  
    times_obj.appned(datetime.strptime(times[i], '%H:%M'))
    dates_times_obj = datetime.combine(datetime.date(dates_obj[i]), datetime.time(times[i]))
    print (dates_times_obj)

输出错误

 dates_times_obj = datetime.combine(datetime.date(dates_obj[i]), datetime.time(times[i]))                                                              
    TypeError: descriptor 'time' requires a 'datetime.datetime' object but received a 'str'    

3 个答案:

答案 0 :(得分:1)

您可以尝试以下方法吗?

datetime.datetime.strptime(dates_obj[i] + times[i], '%Y-%m-%d%H:%M').date()

因此,在您的代码中将显示以下内容:

dates_times_obj = datetime.datetime.strptime(dates_obj[i] + times[i], '%Y-%m-%d%H:%M').date()

答案 1 :(得分:0)

这似乎是一个错字,因为您指的是var finalTotal = document.getElementById("#ffm-total"); var hiddenTotal = document.getElementById("give-final-total-wrap").getElementsByClassName("give-final-total-amount")[0]; hiddenTotal.innerHTML = finalTotal; 而不是finalTotal.value。此外,如果不需要日期和时间列表,我建议使用python语言的一些不错的功能,例如times[i]

times_obj[i]

答案 2 :(得分:-1)

您可以按以下方式使用内置函数max:

newest_date = max(
   datetime.datetime.strptime( d + " " + t, "%Y-%m-%d %H:%M" ) 
   for d, t in zip( dates, times )
)