Python3 将本地时间转换成指定时区时间

最近项目进行开发时,接收到一个时间字符串,需要把这个时间字符串转换成指定时区的时间,并计算出纪元时间。找了很多资料文档,介绍的虽然都比较详细,但是不符合我的需求,而且同一个点介绍的情况不一样,觉得有些混乱。经过大量资料查阅并亲自实际操作后终于实现了,这里做一下记录。

参考资料:How To Convert Non-UTC Timestamp Into UNIX Epoch Time In Python

这里分两种情况:1、服务器默认时区和目标时区一致;2、服务器默认时区和目标时区不一致。

1、服务器默认时区与目标时区一致的场合:

这种场合下就没必要去转换时区了,先将利用time模块的time.strptime()将时间转换成datetime时间元组,这样就可以直接使用time模块的time.mktime(datetime时间元组),获得纪元时间。

# 将datetime转换成纪元时间
# @param dt datetime时间
# @param format 时间格式
# @return 纪元时间
def __unix_time(dt, format):
    try:
        # 转换为时间数组
        time_arr = time.strptime(dt, format)
        # 转换为UNIX时间戳
        timestamp = time.mktime(time_arr)

        return timestamp
    except [OverflowError, ValueError]:
        return None

现在来测试一下:

print(__unix_time("2019-07-14 11:23:36", "%Y-%m-%d %H:%M:%S"))

执行结果:

1563074616.0

Process finished with exit code 0

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值