Количество секунд с начала дня Часовой пояс UTC

Как найти "количество секунд с начала часового пояса UTC" в Python? Я просмотрел документы и не понял, как это сделать, используя datetime.timedelta.

Ответ 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()