2014-12-21 4 views
7

Как сделать так, чтобы: datetime.date.today() был преобразован в UTC?Как конвертировать datetime.date.today() в UTC?

Это мой код до сих пор:

#today : 2014-12-21 
today = datetime.date.today() 

#1900-01-01 16:00:00+00:00 
timeformat = datetime.datetime.strptime('16:00', '%H:%M').replace(tzinfo=pytz.utc) 

#combine today and timeformat 2014-12-21 16:00:00 
now = datetime.datetime.combine(u, timeformat.time()) 
str_now = now.strftime("%Y-%m-%d %H:%M:%S") 

ответ

16

Использование utcnow:

today = datetime.datetime.utcnow().date() 
+0

Неправильно, если полночь в локальное время ('date.today()') является тем же самым экземпляром времени, что и в полночь в UTC ('.utcnow(). Date()'). См. [Как получить время UTC «полуночи» для данного часового пояса?] (Http://stackoverflow.com/questions/373370/how-do-i-get-the-utc-time-of-midnight- for-a-given-timezone) – jfs

+0

Какое это имеет отношение к полуночи? Он просто получает дату, когда UTC находится прямо сейчас. – webjunkie

+0

@webjunkie: посмотрите название вопроса, обратите внимание: 'date.today()' там. Он возвращает дату в часовом поясе * local *. Это значение изменяется в полночь в * местном * часовом поясе. В '23: 59: 59' это один день,' 00: 00: 00' другой. Вы следуете? Этот момент: '00: 00' в локальном часовом поясе соответствует * разному * Время UTC в зависимости от местного часового пояса, например,' 2016-02-27 00: 00' в Нью-Йорке соответствует '2016-02-27 05:00 'UTC. Если заголовок вопроса был «какова текущая дата в UTC прямо сейчас»; Я бы согласился с тобой. – jfs

-4

на дату печати со временем вы можете использовать ...

tomorrow = twtomorrow.strftime("%Y-%m-%d %H:%M:%S") 

вместо

tomorrow = twtomorrow.strftime("%Y-%m-%d") 
Смежные вопросы