我试图创建一个datetime.date对象,但将日期中的连字符改为下划线。有没有一种方法可以对datetime.date对象执行此操作?或者我必须以某种方式对datetime对象执行此操作?
from datetime import datetime
date = datetime.strptime('2021-12-30', '%Y-%m-%d').date()
print(type(date))
# <class 'datetime.date'>
print(date)
# 2021-12-30
date_2 = date.strftime('%Y_%m_%d')
print(date_2)
# 2021_12_30
print(type(date_2))
# <class 'str'> I want this to stay as a datetime.date object
您所指的datetime
对象仅以以下形状存在:datetime.date(2021, 12, 30)
。当你在上面调用print()
时,它只需将其转换成一个字符串并打印出来:
> print(date)
2021-12-30
也就是说,除非你决定使用字符串,否则你不能用下划线代替破折号。strftime()
是将日期转换为字符串的好方法。否则,您可以使用以下方法获得相同效果:
> str(date).replace('-', '_')
2021_12_30
有关Python字符串和日期对象的更多颜色,请查看以下答案:如何以常规格式打印日期?
date.strftime是根据给定格式获取字符串表示的函数