自UTC时区当天开始以来的秒数
我想知道如何在Python中找到“从一天开始到现在的秒数(使用UTC时区)”。我查了文档,但不太明白怎么用datetime.timedelta
来实现这个。
3 个回答
0
import time
t = time.gmtime()
seconds_since_utc_midnight = t.tm_sec + (t.tm_min * 60) + (t.tm_hour * 3600)
如果想要获取本地时间,我们可以用 time.localtime()
来代替 time.gmtime()
。
7
在一个 datetime.timedelta
对象中,x
的秒数可以通过 timedelta.total_seconds 来获取:
x.total_seconds()
这个功能是在 Python 2.7 中引入的。如果你使用的是更早版本的 Python,就需要自己来计算:total_seconds = x.days*24*60*60 + x.seconds + x.microseconds/1e6
。
10
这里有一种方法可以做到。
from datetime import datetime, time
utcnow = datetime.utcnow()
midnight_utc = datetime.combine(utcnow.date(), time(0))
delta = utcnow - midnight_utc
print delta.seconds # <-- careful
编辑:如建议所说,如果你需要微秒级的精度,或者可能跨越24小时(也就是说,delta.days > 0),可以使用 total_seconds()
或者 @unutbu 提供的公式。
print delta.total_seconds() # 2.7
print delta.days * 24 * 60 * 60 + delta.seconds + delta.microseconds / 1e6 # < 2.7