如何将我的日期转换为稍微不同的格式

How do I convert my date into a slightly different format

日期 = '2020 年 9 月 4 日'。

现在 excel 我使用格式 TEXT(date,'YYYYMMDD') 进行转换,如何在 python 中复制相同的格式?

我尝试使用日期时间函数

d = datetime.strptime(date, '%Y%m%d')

但我得到值错误 ValueError: time data '9/4/2020' does not match format '%Y%m%d'

我该如何解决这个问题?

在Python中这被称为strptime(字符串解析时间,即从字符串中获取时间对象)和strftime(从时间中获取字符串表示,从时间中获取字符串表示对象 - 逆过程)。

Python文档中列出了各种时间符号here。您需要准确描述时间的格式,包括分隔符(例如 /-)。在两者之间,您根据文档中的代码表示年、月、日等。所以在你的情况下:

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

应该可以。 (假设先来一天。)

不确定你是否想要这样的输出:

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