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

如何创建不调整localtime的unix时间戳?

  •  5
  • sheats  · 技术社区  · 16 年前

    import os
    import pytz
    import time
    import datetime
    
    epoch = pytz.utc.localize(datetime.datetime(1970, 1, 1))
    print time.mktime(epoch.timetuple())
    
    os.environ['TZ'] = 'UTC+0'
    time.tzset()
    print time.mktime(epoch.timetuple())
    

    以下是一些输出:

    Python 2.6.4 (r264:75706, Dec 25 2009, 08:52:16) 
    [GCC 4.2.1 (Apple Inc. build 5646) (dot 1)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import os
    >>> import pytz
    >>> import time
    >>> import datetime
    >>> 
    >>> epoch = pytz.utc.localize(datetime.datetime(1970, 1, 1))
    >>> print time.mktime(epoch.timetuple())
    25200.0
    >>> 
    >>> os.environ['TZ'] = 'UTC+0'
    >>> time.tzset()
    >>> print time.mktime(epoch.timetuple())
    0.0
    

    还有别的办法吗?或者这样叫time.tzset安全吗。

    1 回复  |  直到 16 年前
        1
  •  6
  •   Greg Hewgill    16 年前

    这个 calendar 模块包含 calendar.timegm

    (元组)

    gmtime() time time.gmtime() timegm()

    推荐文章