Я сохраняю все свои часы в UTC, и моя система настроена на UTC (хотя я в EST).
У меня есть даты, хранящиеся как:
Wed, 20 Feb 2013 03:51:39 +0000
Однако, я хотел бы выбрать информацию, основанную сегодня на EST, поэтому я пытаюсь:
-
Получить текущее время как UTC и перейти на EST
datetime.utcnow().replace(tzinfo=tz.tzutc()).astimezone(tz.gettz('America/New_York')) 2013-02-19 23:17:20.560898-05:00
-
Далее я хочу получить время начала для дня EST (2013-02-19 00: 00: 00.000000-05: 00) и время окончания (2013-02-19 23: 59: 59.99999- 5:00)
-
После того, как у меня есть эти значения, я хотел бы вернуться в UTC, поэтому у меня есть высокое и низкое значение, которое я могу закрепить, чтобы исправить мой EST (мой часовой пояс).
Если это не лучший способ сделать это, или мне что-то не хватает (кажется мне слишком сложным), пожалуйста, помогите мне увидеть свет!
ТИА
Обновление за каждый ответ:
d1 = datetime.utcnow().replace(tzinfo=tz.tzutc()).astimezone(tz.gettz('America/New_York'))
print d1.strftime("%m %d %Y") ; d2 = d1.replace(day=d1.day + 1) ; print d2.strftime("%m %d %Y")
Это даст мне
02 20 2013
02 21 2013
Это правильно. Теперь мне нужно генерировать полное время EST, а затем конвертировать в UTC. Этого я не могу понять. На самом деле, я, вероятно, захочу конвертировать в временную метку времени UTC, когда это будет завершено, потому что это упростит мои операции с базой данных (<, > , == и т.д.).