Python - дата и время определенного часового пояса

У меня самое сложное время, чтобы получить текущее время в часовой пояс EDT.

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

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

Ответ 1

Я не очень разбираюсь в часовом поясе 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 

Ответ 2

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

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