我想将日期和时间字符串数组转换为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'
答案 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 )
)