在python中将字符串格式的日和月转换为日期的python方法是什么?



我有日期和月份的字符串格式23 Sep,我想将上述字符串转换为当前日期23/09/2021。我使用下面的代码实现了这一点,什么是更python的方式来做到这一点?

from datetime import datetime
# datetime object containing current date and time
now = datetime.now()
year = str(now).split('-')
year =year[0]
dm = '23rd Sep'
s = re.findall(r'[A-Za-z]+|d+', dm)
day_month = " ".join(s[::len(s)-1] )
date = day_month +' ' + year
dmap = {'Jan':'January','Feb':'Febuary','Mar':'March','Sep':'September'}
import arrow
for i in dmap.keys():
s = date.split(' ')
if i in s:
s[1] = dmap[i]
clean_date = ' '.join(s)
p = arrow.get(clean_date, 'DD MMMM YYYY').format('DD/MM/YYYY')
print(p)

我看不出有什么问题:

import pandas as pd
s = '23rd Sep'
pd.Timestamp(s + ' 2021')
Out[1]: Timestamp('2021-09-23 00:00:00')

如果你想用DMY格式:

_.strftime('%d/%m/%Y')
Out[2]: '23/09/2021'

您可以使用pd.to_datetime()获取当前日期并从中提取年份。(无需硬编码年份)

然后,再次使用它进行日期转换。后跟strftime()用于格式化日期字符串。

import pandas as pd
year = pd.to_datetime('now').year     # Get current year
dm = '23rd Sep'
pd.to_datetime(dm + ' ' + str(year)).strftime('%d/%m/%Y')

输出:

'23/09/2021'

最新更新