python UTC 与 本地时间互转

最近在操作 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") ) 
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值