日期 = '9/4/2020'。
现在在 excel 上我使用格式 TEXT(date,'YYYYMMDD') 进行转换,如何在 python 中复制相同的格式?
我尝试使用 datetime 函数
d = datetime.strptime(date, '%Y%m%d')
但我得到值错误
ValueError: time data '9/4/2020' does not match format '%Y%m%d'
我该如何解决?
日期 = '9/4/2020'。
现在在 excel 上我使用格式 TEXT(date,'YYYYMMDD') 进行转换,如何在 python 中复制相同的格式?
我尝试使用 datetime 函数
d = datetime.strptime(date, '%Y%m%d')
但我得到值错误
ValueError: time data '9/4/2020' does not match format '%Y%m%d'
我该如何解决?
不知道你是否想要这样的输出:
date = '9/4/2020'
d = datetime.datetime.strptime(date, '%d/%M/%Y')
print(d)
输出:
2020-01-09 00:04:00
首先,您需要在格式中使用小写 m。转换为日期时间后,只需使用strftime转换回字符串
d = datetime.strptime(date, '%d/%m/%Y').strftime('%Y%m%d')
另一种选择只是拆分字符串日期:
f"{date.split('/')[2]}{date.split('/')[1].zfill(2)}{date.split('/')[0].zfill(2)}"
'20200409'
这应该做你想要的:
d = datetime.strptime(date, '%d/%M/%Y') # Convert string to date
new_date_format = d.strftime("%Y%m%d") # Set your custom date format
print('My new Date format: {}'.format(new_date_format)). # Print the result
在 Python 中,这称为strptime
(字符串解析时间,即从字符串中获取时间对象)和strftime
(从时间中获取字符串,从时间对象中获取字符串表示 - 逆过程)。
各种时间符号在此处的 Python 文档中列出。您需要准确描述时间的格式,包括分隔符(例如/
or -
)。在两者之间,您根据文档中的代码表示年、月、日等。所以在你的情况下:
d = datetime.strptime(date, '%d/%M/%Y')
会给你时间对象,然后你可以使用
print(datetime.strftime(d, '%Y%M%d'))
得到新的。
或者在一行中:
d = strftime(strptime('9/4/2020', '%d/%M/%Y'), '%Y%M%d')
应该管用。(假设第一天到来。)