首页 > 解决方案 > 在 Python 中以日期格式删除时间

问题描述

我使用:

s = "20200113"
final = datetime.datetime.strptime(s, '%Y%m%d')

我需要转换日期格式的数字(2020-01-13),但是当我打印最终结果时:

2020-01-13 00:00:00

试过 datetime.date(s, '%Y%m%d') 但它返回一个错误:

an integer is required (got type str)

有什么命令可以只获取没有时间的日期吗?

标签: pythondatetime

解决方案


使用datetime.date(year, month, day). 对字符串进行切片并转换为整数以获取年、月和日。现在它是一个datetime.date对象,您可以将它用于其他事情。但是,在这里,我们使用.strftime将其转换回您所需格式的文本。

s = "20200113"
year = int(s[:4])  # 2020
month = int(s[4:6])  # 1
day = int(s[6:8])  # 13
>>> datetime.date(year, month, day).strftime('%Y-%m-%d')
'2020-01-13'

您也可以直接通过字符串进行转换。

>>> f'{s[:4]}-{s[4:6]}-{s[6:8]}'
'2020-01-13'

推荐阅读