如何在Python中将字符串日期(2021年1月25日)转换为年月日日期(2021-01-01)

问题描述 投票:0回答:3

我有类似

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')

问题是月份单词,所以也许我可以将字符串替换为月份数字,然后将其转换,但我被卡住了

python datetime converters
3个回答
9
投票

正如您在我的评论中看到的,您只需要使用正确的匹配掩码即可获得正确的结果。

您的日期字符串采用格式

%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()
格式代码


0
投票

我有一个鹿相机,但它一直在做同样的事情,我该如何把itr的投手拿下来,你能帮我把投手从这个停止的相机上拿下来吗


-2
投票

你可以使用

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)
© www.soinside.com 2019 - 2024. All rights reserved.