from datetime import datetime

datetime.strptime('%b%d  %I:%M%p', 'AUG21  3:26PM')

results with 
1900-08-21 15:26:00

how can I write in pythonic way so that when there's no year, take the current year as default (2013)?

I checked and strftime function doesn't have option to change the default.. maybe another time libraries can do?

thx

有帮助吗?

解决方案

Parse the date as you are already doing, and then

date= date.replace(2013)

This is one of simplest solution with the modules you are using.

Thinking better about it, you will probably face a problem next Feb 29.

input= 'Aug21  3:26PM'
output= datetime.datetime.strptime('2013 '+ input ,'%Y %b%d  %I:%M%p')

其他提示

You can find out today's date to replace year for dynamic replacement.

datetime.strptime('%b%d  %I:%M%p', 'AUG21  3:26PM').replace(year=datetime.today().year)
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top