Преобразование из PST / PDT (отметка времени Facebook) в UTC - PullRequest
4 голосов
/ 15 июля 2011

Facebook API (с использованием FQL) дает мне временные метки на основе тихоокеанского часового пояса.Он представляет число секунд с 1 января 1970 года. Я нахожусь во Франции, и время Франции - GMT + 2 летом и GMT + 1 зимой.Это «изменение летнего времени» хорошо обрабатывается всеми функциями даты и времени, основанными на местном.

Как вы уже поняли, я пытаюсь преобразовать возвращенную метку времени Facebook во французское время.Сегодня я обнаружил, что Facebook возвращает 1310788800 за мою пятницу, 15 июля, 21:00 (французское время отображается на веб-сайте Facebook).Facebook сообщает, что их часовой пояс - PST (GMT-8h).1310788800 - это пятница, 15 июля, 20:00 по Гринвичу, что приводит к 22:00 во Франции.

Итак, это 1 дополнительный час, который приводит меня к следующим выводам:

  • Или Facebook не основан на PST, но PDT (принимая во внимание смену летней магии для всех их дат - кажется, нереальной)
  • Или французское изменение летнего времени не учитывается на веб-сайте Facebook иDB
  • И то, и другое подразумевает, что Facebook API очень трудно использовать людям, которые находятся далеко от своих серверов, а управление временем Facebook было закодировано с помощью шагов

Неважно, проблема та же.Я хочу иметь возможность преобразовать эту дату зимой и летом.Для этого я должен считать это время основанным на PDT и переводить его в время UTC.

У вас есть подсказка, чтобы изменить PDT на UTC с помощью python?

Спасибо за вашу помощь!

Ответы [ 2 ]

2 голосов
/ 15 июля 2011

Я должен использовать pytz

from datetime import *
from pytz import timezone
import pytz

[...]

if (not isinstance(pacificTime, int)):
    pacificTime = int(pacificTime)
originalTimeZone = "America/Los_Angeles"
print datetime.fromtimestamp(pacificTime, pytz.timezone(originalTimeZone))

Это решение взято из моего предыдущего поста: Изменение метки времени Unix на другой часовой пояс

Надеюсь, что это может помочь

1 голос
/ 15 июля 2011

чтобы изменить PDT на UTC в python, используйте pytz.

Но, похоже, API Facebook более сложен, чем это.См. События и часовые пояса Facebook, как преобразовать дату и время UTC в то, что ожидает Facebook?

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