在Python中将字符串转换为日期时间对象

6

我有一个日期字符串,定义如下:

datestr = '2011-05-01'

我想把它转换成日期时间对象,所以我使用了以下代码。
dateobj = datetime.datetime.strptime(datestr,'%Y-%m-%d')
print dateobj

但是打印出来的是:2011-05-01 00:00:00。我只需要2011-05-01。我的代码需要改变什么?

谢谢


这是一个很容易通过阅读文档就能得到答案的问题。 - Björn Pollex
1
@BjörnPollex 我刚刚发现了这个问题,它在10秒内帮助了我。如果要在文档页面上找到答案,那将花费我更长的时间。StackOverflow之所以受欢迎,是有原因的,而且这并不是一个坏原因。 - Richard
3个回答

12

dateobj.date()会返回一个datetime.date对象,例如datetime.date(2011, 5, 1)

使用方法:

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

另请参阅Python有关日期时间的文档。


有点糟糕,需要创建一个日期时间对象然后丢弃时间... - Mu Mind
@MuMind:在这种简单的情况下,你也可以使用datetime.date(*map(int, datestr.split("-")))直接创建一个日期对象。 - Sven Marnach

2

如其名,datetime对象始终包含日期和时间。如果您不需要时间,只需忽略即可。要以与之前相同的格式打印它,请使用

print dateobj.strftime('%Y-%m-%d')

1
dateobj = datetime.datetime.strptime(datestr,'%Y-%m-%d').date()
print dateobj

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接