Как найти "количество секунд с начала часового пояса UTC" в Python? Я просмотрел документы и не понял, как это сделать, используя datetime.timedelta
.
Количество секунд с начала дня Часовой пояс UTC
Ответ 1
Вот один из способов сделать это.
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
Ответ 2
Число секунд в datetime.timedelta
, x
определяется timedelta.total_seconds:
x.total_seconds()
Эта функция была введена в Python2.7. Для более старых версий python вам просто нужно вычислить его самостоятельно: total_seconds = x.days*24*60*60 + x.seconds + x.microseconds/1e6
.
Ответ 3
import time
t = time.gmtime()
seconds_since_utc_midnight = t.tm_sec + (t.tm_min * 60) + (t.tm_hour * 3600)
для локального времени, мы можем использовать time.localtime()
вместо time.gmtime()