我有类似
Jan 25, 2021
(Jan,Feb,Mar,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec) 的字符串,如何将其转换为 2021-01-25
?
我定义了一个函数,例如:
def to_datetime(datestring):
#date = datetime.strptime(datestring, '%m.%d.%Y')
#return date.strftime("%Y-%m-%d")
return datetime.strptime(datestring, '%Y-%m-%d')
问题是月份单词,所以也许我可以将字符串替换为月份数字,然后将其转换,但我被卡住了
正如您在我的评论中看到的,您只需要使用正确的匹配掩码即可获得正确的结果。
您的日期字符串采用格式
%b %d, %Y
,因此您需要在 strptime()
中使用相同的掩码。考虑到这一点,像这样的函数就可以完成这项工作:
from datetime import datetime
def mdy_to_ymd(d):
return datetime.strptime(d, '%b %d, %Y').strftime('%Y-%m-%d')
这是一个概念证明:
>>> from datetime import datetime
>>>
>>>
>>> def mdy_to_ymd(d):
... return datetime.strptime(d, '%b %d, %Y').strftime('%Y-%m-%d')
...
>>> mdy_to_ymd('Jan 25, 2021')
'2021-01-25'
>>>
请记住,
strptime()
使用掩码字符格式从匹配日期的 datetime
创建 string
对象。一旦您在 datetime
对象中获得了正确的掩码和正确的表示形式,您就可以使用 strftime()
将其转换为所需的格式。
strftime()
和 strptime()
格式代码。
我有一个鹿相机,但它一直在做同样的事情,我该如何把itr的投手拿下来,你能帮我把投手从这个停止的相机上拿下来吗
你可以使用
date_like_you_dont_want = "Jan 2,2021".lower()
day = date_like_you_dont_want[4:6]
if not ',' in day:
year = date_like_you_dont_want[7:]
else:
day=date_like_you_dont_want[4]
year=date_like_you_dont_want[6:]
month=date_like_you_dont_want[:3]
if month =='jan':
month = '01'
elif month =='fev':
month = '02'
elif month =='mar':
month = '03'
elif month =='may':
month = '04'
elif month =='apr':
month = '05'
elif month =='jun':
month = '06'
elif month =='jul':
month = '07'
elif month =='aug':
month = '08'
elif month =='sep':
month = '09'
elif month =='oct':
month = '10'
elif month =='mov':
month = '11'
elif month =='dez':
month = '12'
print(year+'-'+day+'-'+month)