Количество секунд с начала дня UTC, часовой пояс - PullRequest
11 голосов
/ 10 ноября 2011

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

Ответы [ 3 ]

9 голосов
/ 10 ноября 2011

Вот один из способов сделать это.

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
6 голосов
/ 10 ноября 2011

Количество секунд в datetime.timedelta, x, задается как timedelta.total_seconds :

x.total_seconds()

Эта функция была введена в Python2.7. Для более старых версий python вам просто нужно вычислить его самостоятельно: total_seconds = x.days*24*60*60 + x.seconds + x.microseconds/1e6.

0 голосов
/ 11 октября 2015
import time
t = time.gmtime()
seconds_since_utc_midnight = t.tm_sec + (t.tm_min * 60) + (t.tm_hour * 3600)

по местному времени, мы можем использовать time.localtime() вместо time.gmtime()

...