首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从datetime对象中减去datetime.datetime.now()

从datetime对象中减去datetime.datetime.now()
EN

Stack Overflow用户
提问于 2016-04-03 22:40:07
回答 2查看 1.6K关注 0票数 1

我有一个字符串,我已经使用解析将其转换为datetime对象。

代码语言:javascript
复制
time = 'Tue, 30 Sep 2014 16:19:08 -0700 (PDT)'
date_object = parse(time)

我想找出从那以后已经过去的时间。我尝试使用datetime.datetime.now()并减去两者,但是它们是不同的格式,并且抛出了一个错误。

做这件事最好的方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-03 22:44:08

使https://stackoverflow.com/questions/4530069/python-how-to-get-a-value-of-datetime-today-that-is-timezone-aware datetime对象并从中减除date_object

代码语言:javascript
复制
>>> from dateutil.parser import parse
>>> time = 'Tue, 30 Sep 2014 16:19:08 -0700 (PDT)'
>>> date_object = parse(time)
>>>
>>> from datetime import datetime
>>> import pytz
>>> now = datetime.now(pytz.timezone('US/Pacific'))
>>> now - date_object
datetime.timedelta(550, 84210, 337036) 
票数 6
EN

Stack Overflow用户

发布于 2016-04-04 02:49:25

如果您有一个时区感知的datetime对象,那么您可以将它转换为UTC,以便很容易地找到经过的时间:

代码语言:javascript
复制
from datetime import datetime

# <utc time> = <local time> - <utc offset>
then_utc = date_object.replace(tzinfo=None) - date_object.utcoffset()
now = datetime.utcnow()
elapsed = now - then_utc

to get the elapsed time see in here

您可以解析时间字符串并仅使用stdlib获得经过的时间:

代码语言:javascript
复制
>>> time_string = 'Tue, 30 Sep 2014 16:19:08 -0700 (PDT)'
>>> from email.utils import parsedate_tz, mktime_tz
>>> then = mktime_tz(parsedate_tz(time_string))
>>> import time
>>> now = time.time()
>>> elapsed_seconds = now - then
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36392111

复制
相关文章

相似问题

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