转换;2019年11月19日下午12:00“;至;2019-11-19T12:00“;用python

转换;2019年11月19日下午12:00“;至;2019-11-19T12:00“;用python,python,Python,我正在从事一个python项目,在该项目中,我从第三方服务获取以下变量作为示例var=“2019年11月19日,下午12:00”,我需要将其转换为var=“2019-11-19T12:00”,以便用python将其发送到google calendar API请求 由于我是python新手,我知道一定有更好的方法,但到目前为止,我提取本月信息的方法是:尝试以下方法: from datetime import datetime month_map = {'January': 1, 'February

我正在从事一个python项目,在该项目中,我从第三方服务获取以下变量作为示例
var=“2019年11月19日,下午12:00”
,我需要将其转换为
var=“2019-11-19T12:00”
,以便用python将其发送到google calendar API请求

由于我是python新手,我知道一定有更好的方法,但到目前为止,我提取本月信息的方法是:

尝试以下方法:

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())
看看.strftime()