将UNIX时间戳更改为其他时区

发布于 2021-01-29 14:11:25

我从Python程序中的Web服务检索Unix时间戳。该时间戳是美国时区。为了将它与其他在法国本地化的对象一起插入MySQL数据库中,我想将此时间戳转换为法国时区。

我可以用数学函数来做到这一点,但是存在夏令时的问题。我更喜欢使用Python时间和日期特定的函数来处理这些概念。

您有提示吗,我迷失了Python文档?

关注者
0
被浏览
158
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    过去,当我们从服务提供商处下载文件的时间戳具有与PST时区相对应的时间戳时,我遇到了类似的问题。以下内容帮助我完成了转换:

    import pytz, datetime, time
    import os
    
    originalTimeStamp = os.stat("/tmp/file-from-us-west-coast").st_mtime
    
    # prints e.g. 2010-03-31 13:01:18
    print "original:",datetime.datetime.fromtimestamp(originalTimeStamp)
    
    # re-interpret 
    originalTimeZone = "America/Los_Angeles"
    targetTimeZone   = "Europe/Paris"
    
    newTimeStamp = pytz.timezone(originalTimeZone).localize(datetime.datetime.fromtimestamp(originalTimeStamp)).astimezone(pytz.timezone(targetTimeZone))
    
    # prints e.g. 2010-03-31 22:01:18+02:00
    print "new:     ",newTimeStamp
    
    # convert back to seconds since epoch
    newTimeStamp = time.mktime(newTimeStamp.timetuple())
    
    # print time difference in hours
    print (newTimeStamp - originalTimeStamp) / 3600.0
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看