Получение и отображение времени и даты, сохраненной в UTC с помощью Python - PullRequest
0 голосов
/ 11 марта 2019

У меня запущен скребок, который очищает данные с удаленного сайта, и данные хранятся в БД SQLite и помечаются целой временной меткой UNIX в UTC, потому что я подумал, что это хорошая идея.

    time = int(datetime.utcnow().timestamp())

Однако, когда я попытался получить данные и получить их по местному времени (Куала-Лумпур, UTC + 8), я обнаружил большое несоответствие.Для получения я попытался преобразовать местное время обратно в UTC в Python (3.6.6), но ни одна из них, похоже, не выбирает строки с правильной отметкой времени.Моя последняя попытка найти начало заданного дня, перед тем как сдаться, была

(datetime(the_date.year,
          the_date.month,
          the_date.day,
          tzinfo=timezone.utc)
 - timedelta(hours=8)).timestamp()

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

datetime.fromtimestamp(timestamp) + timedelta(hours=8)

Они некак-то не совпадают друг с другом, что я сделал не так?

1 Ответ

0 голосов
/ 11 марта 2019

Это может помочь вам:

def get_UTC_diff(tzname):
    now = datetime.datetime.utcnow()
    tz = timezone(tzname)
    utc = timezone('UTC')
    utc.localize(datetime.datetime.now())
    delta = utc.localize(now) - tz.localize(now)
    hrs = int(delta.seconds / 3600)
    return hrs
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...