Python's timedelta: can't I just get in whatever time unit I want the value of the entire difference?

本小妞迷上赌 提交于 2019-12-30 16:52:14

问题


I am trying to have some clever dates since a post has been made on my site ("seconds since, hours since, weeks since, etc..") and I'm using datetime.timedelta difference between utcnow and utc dated stored in the database for a post.

Looks like, according to the docs, I have to use the days attribute AND the seconds attribute, to get the fancy date strings I want.

Can't I just get in whatever time unit I want the value of the entire difference? Am I missing something?

It would be perfect if I could just get the entire difference in seconds.


回答1:


It seems that Python 2.7 has introduced a total_seconds() method, which is what you were looking for, I believe!




回答2:


You can compute the difference in seconds.

total_seconds = delta.days * 86400 + delta.seconds

No, you're no "missing something". It doesn't provide deltas in seconds.




回答3:


It would be perfect if I could just get the entire difference in seconds.

Then plain-old-unix-timestamp as provided by the 'time' module may be more to your taste.

I personally have yet to be convinced by a lot of what's in 'datetime'.




回答4:


Like bobince said, you could use timestamps, like this:

# assuming ts1 and ts2 are the two datetime objects
from time import mktime
mktime(ts1.timetuple()) - mktime(ts2.timetuple())

Although I would think this is even uglier than just calculating the seconds from the timedelta object...



来源:https://stackoverflow.com/questions/500168/pythons-timedelta-cant-i-just-get-in-whatever-time-unit-i-want-the-value-of-t

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!