python UTC 与 本地时间互转

发布时间:2019-09-05 07:33:58编辑:auto阅读(3095)

    最近在操作 MongoDB 时候出现了时区转换的问题,导致 Python 的时间对象存到 MongoDB 转成了 UTC 时间的格式,但是使用 Golang 查询时候与本地时间相差了 8 小时,所以这里写出了 Python 的本地时间与 UTC 时间的转换,Golang 的 MongoDB 驱动会自动做这种转换工作,请见我另一篇文章:http://blog.csdn.net/u010649766/article/details/79385948

    from datetime import datetime
    
    def utc2local( utc_dtm ):
        # UTC 时间转本地时间( +8:00 )
        local_tm = datetime.fromtimestamp( 0 )
        utc_tm = datetime.utcfromtimestamp( 0 )
        offset = local_tm - utc_tm
        return utc_dtm + offset
    
    def local2utc( local_dtm ):
        # 本地时间转 UTC 时间( -8:00 )
        return datetime.utcfromtimestamp( local_dtm.timestamp() )
    
    if __name__ == "__main__":
    
        # utc_tm = datetime.utcnow()
        utc_tm = datetime( 2012, 10, 26, 10, 00, 00 )
    
        print( "src utc time:\t", utc_tm.strftime("%Y-%m-%d %H:%M:%S") ) 
    
        # UTC 转本地
        local_tm = utc2local(utc_tm)
        print( "tran loc time:\t", local_tm.strftime("%Y-%m-%d %H:%M:%S") ) 
    
        # 本地转 UTC
        utc_tran = local2utc(local_tm)
        print( "tran utc time:\t", utc_tran.strftime("%Y-%m-%d %H:%M:%S") ) 

关键字