代码之家  ›  专栏  ›  技术社区  ›  Amandasaurus

Facebook事件和时区,如何将UTC日期时间转换为Facebook期望的时间?

  •  2
  • Amandasaurus  · 技术社区  · 14 年前

    我的应用程序需要创建facebook事件。一切都很好,但我不能把时区弄对。开始/结束日期都错了。Facebook的事件API文档说:

    (source)

    我搞不懂那是什么意思。

    我的web应用程序是一个python(django)站点。给予 datetime pytz 打电话到正确的时间发送到facebook?

    2 回复  |  直到 14 年前
        1
  •  1
  •   Gareth Rees    14 年前

    " Unix epoch time 简单地说就是“自1970年1月1日起的秒数(不包括闰秒)”。

    顺便说一句,Facebook事件API的描述太离奇了,我不敢相信它是正确的。他们的要求似乎是:

    1. 事件创建者输入的时间;
    2. 解释为太平洋时区的当地时间,该时区的夏令时规则有效;
    3. 已转换为UTC。

        2
  •  2
  •   Jochen Ritzel    14 年前

    这意味着,如果用户输入“12 am”,您应该假定其为“太平洋时间12 am”,将其转换为UTC,因此将其转换为“8 am GMT”,并将其转换为unix纪元。

    你可以这样做:

    import datetime, calendar
    
    date_local = datetime.datetime.now() # some date in some timezone
    date_utc = date_local.utctimetuple() 
    unix_time = calendar.timegm(date_utc) # to unix time