在Python中将“ 2019年11月19日,12:00 PM”转换为“ 2019-11-19T12:00”

时间:2019-07-29 18:44:59

标签: python

我正在处理一个python项目,其中从第三方服务获取以下变量作为示例var = "November 19 2019, 12:00 PM",我需要将其转换为var = "2019-11-19T12:00"以便将其发送到python中的Google日历API请求

因为我是python的新手,所以我知道必须有一个更好的方法,但是到目前为止我提取出的月份是:

1 个答案:

答案 0 :(得分:0)

尝试一下:

from datetime import datetime
month_map = {'January': 1, 'February': 2, 'March': 3, 'April': 4, 'May': 5, 'June': 6, 'July': 7, 'August': 8, 'September': 9, 'October': 10, 'November': 11, 'December': 12}
s = "November 19 2019, 12:00 AM"
date_time_list = s.split(' ')
month = month_map[date_time_list[0]]
date = date_time_list[1]
year = date_time_list[2][:4]
hour_min_list = date_time_list[3].split(':')
hour = hour_min_list[0]
if date_time_list[4] == 'PM' and int(hour) != 12:
    hour = str(int(hour) + 12)
if date_time_list[4] == 'AM' and int(hour) == 12:
    hour = '00'
minutes = hour_min_list[1]

iso_format = datetime(int(year), int(month), int(date), int(hour), int(minutes)).isoformat()
print(iso_format)

较短的实现方式

from datetime import datetime
s = "November 19 2019, 12:00 AM"
d = datetime.strptime(s, "%B %d %Y, %I:%M %p")
print(d.isoformat())