将特定时间格式转换为另一种格式

Converting a specific time format into another format

我正在尝试转换某种时间格式。但是由于当前时间格式不友好,某些字符(日,月)的索引由于之前的字符数而发生变化。我一直在尝试使用切片来提取正确的信息。但是因为索引发生变化,我没有任何运气。所需的时间格式来自日期时间。

Current time format:
5/31/21, 6:30 AM
Desirade time format:
2021-06-12 20:41:06.447695

我能够准确提取小时和分钟,但不能提取日、月、年。

if 'PM' in start_time:
        string = ' PM'
    else:
        string = ' AM'

 minute = start_time[start_time.index(':') + 1:start_time.index(string)]
 hour = start_time[start_time.index(', ') + 2: start_time.index(':')]

您基本上想将这种格式 %m/%d/%y, %I:%M %p 转换成这种格式 %Y-%m-%d %H:%M:%S.%f

所以像这样:

d = datetime.strptime(date_input, '%m/%d/%y, %I:%M %p')
new_d = d.strftime('%Y-%m-%d %H:%M:%S.%f')

有关所有日期时间 % 代码,请参阅 the python docs