首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >显示不带时间的Python日期时间

显示不带时间的Python日期时间
EN

Stack Overflow用户
提问于 2014-10-02 10:47:13
回答 6查看 170K关注 0票数 58

我有一个日期字符串,并希望将其转换为日期类型:

我尝试将datetime.datetime.strptime与我想要的格式一起使用,但它在转换时返回了时间。

代码语言:javascript
复制
    when = alldates[int(daypos[0])]
    print when, type(when)

    then = datetime.datetime.strptime(when, '%Y-%m-%d')
    print then, type(then)

以下是输出返回的内容:

代码语言:javascript
复制
   2013-05-07 <type 'str'>
   2013-05-07 00:00:00 <type 'datetime.datetime'>

我需要删除时间: 00:00:00。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2014-10-02 11:21:15

代码语言:javascript
复制
print then.date()

您需要的是一个datetime.date对象。您所拥有的是一个datetime.datetime对象。您可以在按上述方式打印时更改对象,也可以在创建对象时执行以下操作:

代码语言:javascript
复制
then = datetime.datetime.strptime(when, '%Y-%m-%d').date()
票数 97
EN

Stack Overflow用户

发布于 2014-10-02 11:21:21

代码语言:javascript
复制
>>> print then.date(), type(then.date())
2013-05-07 <type 'datetime.date'>
票数 9
EN

Stack Overflow用户

发布于 2017-08-21 14:51:20

要将字符串转换为日期,最简单的方法是使用dateutil模块:

代码语言:javascript
复制
import dateutil.parser
datetime_object = dateutil.parser.parse("2013-05-07")

它还可以处理时区:

代码语言:javascript
复制
print(dateutil.parser.parse("2013-05-07"))
>>> datetime.datetime(2013, 5, 7, 1, 12, 12, tzinfo=tzutc())

如果你有一个datetime对象,比如:

代码语言:javascript
复制
import pytz
import datetime
now = datetime.datetime.now(pytz.UTC)

如果你想去掉时间部分,那么我认为构造一个新的对象要比“减去时间部分”容易得多。它更短,防弹能力更强:

代码语言:javascript
复制
date_part datetime.datetime(now.year, now.month, now.day, tzinfo=now.tzinfo)

它还保留了时区信息,它比timedelta更容易阅读和理解,而且您还可以选择在同一步骤中给出不同的时区(这是有意义的,因为您无论如何都会有零时间部分)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26153795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档