【问题标题】:Get UNIX timestamp (ie UTC timestamp) from a Python timezone aware date从 Python 时区感知日期获取 UNIX 时间戳(即 UTC 时间戳)
【发布时间】:2012-07-10 08:02:34
【问题描述】:

我的计算机在太平洋时间运行(因此 datetime.datetime.fromtimestamp(0) 给我 1969-12-31 16:00:00)。我的问题是,给定 Python 中的时区感知 datetime 对象,我想获取 UNIX 时间戳(即 UTC 时间戳)。最好的方法是什么?

【问题讨论】:

    标签: python datetime utc


    【解决方案1】:
    import calendar
    import datetime
    import pytz
    
    d = datetime.datetime.now(pytz.timezone('America/Los_Angeles'))
    # d == datetime.datetime(2012, 7, 10, 1, 6, 36, 37542, tzinfo=<DstTzInfo 'America/Los_Angeles' PDT-1 day, 17:00:00 DST>)
    
    ts = calendar.timegm(d.utctimetuple())
    # ts == 1341907596
    
    # test with UTC epoch:
    
    d = datetime.datetime(1969, 12, 31, 16, 0, 0, 0, pytz.timezone('America/Los_Angeles'))
    # d == datetime.datetime(1969, 12, 31, 16, 0, tzinfo=<DstTzInfo 'America/Los_Angeles' PST-1 day, 16:00:00 STD>)
    
    ts = calendar.timegm(d.utctimetuple())
    # ts == 0
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-03
      • 1970-01-01
      • 1970-01-01
      • 2012-11-11
      • 2013-03-20
      • 2010-10-02
      相关资源
      最近更新 更多