Вставьте tzinfo в datetime - PullRequest
       28

Вставьте tzinfo в datetime

11 голосов
/ 25 июля 2011

У меня есть следующее tzinfo конкретное определение подкласса:

from datetime import datetime, timedelta, tzinfo

class ManilaTime(tzinfo):
  def utcoffset(self, dt):
    return timedelta(hours=8)

  def tzname(self, dt):
    return "Manila"

Я получил строку даты и хотел бы преобразовать ее в объект datetime с поддержкой часовых поясов. Я предпочитаю использовать следующий метод:

def transform_date(date_string, tzinfo):
  fmt = '%Y-%m-%d'
  # Where do I insert tzinfo?
  date = datetime.strptime(date_string, fmt)
  return date

Можно ли каким-нибудь образом вставить tzinfo в datetime объект следующим образом?

manila = ManilaTime()
date = transform_date('2001-01-01', manila)

1 Ответ

18 голосов
/ 25 июля 2011
def transform_date(date_string, tzinfo):
    fmt = '%Y-%m-%d'
    date = datetime.strptime(date_string, fmt).replace(tzinfo=tzinfo)
    return date
...