Python - дата и время определенного часового пояса - PullRequest
11 голосов
/ 01 ноября 2010

Мне сложнее всего получить текущее время в часовом поясе EDT.

print datetime.time(datetime.now()).strftime("%H%M%S")

datetime.now ([tz]) имеет необязательный аргумент tz, но он должен иметь тип datetime.tzinfo ... Я не смог выяснить, как определить объект tzinfo для восточного часового пояса ... Кажется, это должно быть довольно просто, но я не могу понять это без импорта дополнительной библиотеки.

Ответы [ 2 ]

20 голосов
/ 01 ноября 2010

Я не очень согласен с информацией о часовом поясе EDT, но этот пример должен служить вашей цели.

import datetime

datetime.datetime.now должна передаваться информация о часовом поясе, которая должна иметь тип datetime.tzinfo,Вот класс, который реализует это с некоторыми необходимыми функциями.Я не даю здесь никаких деталей по экономии дневного света, так как это пример.

class EST(datetime.tzinfo):
    def utcoffset(self, dt):
      return datetime.timedelta(hours=-5)

    def dst(self, dt):
        return datetime.timedelta(0)

Теперь вы можете использовать это для получения информации с корректностью часового пояса:

print datetime.datetime.now(EST()) 

Вывод:

2010-11-01 13:44:20.231259-05:00 
8 голосов
/ 01 ноября 2010

Класс tzinfo определяет только интерфейс, вам нужно будет реализовать его самостоятельно (см. Документацию для примера) или использовать сторонний модуль, который его реализует, например pytz.

Редактировать : К сожалению, я пропустил, что вы не хотите импортировать другую библиотеку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...