I have a need to convert a particular formatted string to another.
Source: 2018-08-10 9:00 PM - 9:40 PM Target: 2018-08-10 21:00:00 I wrote the following:
def startofappt(strv): return strv.split(' - ')[0] def convCalDate(dts, tms): # 2018-08-08 5:50 PM from datetime import datetime, date, time dt = datetime.strptime(str(dts) + ' ' + str(startofappt(tms)), "%Y-%m-%d %H:%M %p") return str(dt) import datetime datetoday = datetime.date.today() from datetime import datetime, date, time appointments_set = appointment.objects.filter(docid=11) for appt in appointments_set: if appt.date > datetoday: print("Upcoming: ", appt.date, appt.time, convCalDate(appt.date, appt.time)) else: print("Other:",appt.date, appt.time, convCalDate(appt.date, appt.time )) Unfortunately I'm having trouble with 24 hour time.
Output:
Upcoming: 2018-08-10 9:00 PM - 9:40 PM 2018-08-10 09:00:00 Other: 2018-08-07 9:40 PM - 10:20 PM 2018-08-07 09:40:00 Other: 2018-08-07 9:00 PM - 9:40 PM 2018-08-07 09:00:00 Upcoming: 2018-08-08 5:50 PM - 6:10 PM 2018-08-08 05:50:00 Upcoming: 2018-08-08 6:10 PM - 6:30 PM 2018-08-08 06:10:00 What am I doing wrong?
appointments_setas the list you expect fromfilter.