「每天一个Python实用技巧」3.任何时区下都准确获取UTC+8时间

大家好,我是冲冲,一名主要从事Python服务端开发的程序猿。
以后我会时不时在这里和大家分享服务端软件实际开发工作中用到的实用技术,这些都是历年实践经验的积累,希望大家喜欢!
今天给大家分享的实用技巧是任何时区下都准确获取UTC+8时间的方法,希望对大家有所帮助和启发。

首先,我们来看下任何时区下都准确获取UTC+8时间的样例。
示例代码如下:

from tzlocal import get_localzone
from datetime import datetime, timezone, timedelta

def utc_now():
    utc_now = datetime.utcnow().replace(tzinfo=timezone.utc)
    obj = utc_now.astimezone(timezone(timedelta(hours=8)))
    obj = datetime(obj.year, obj.month, obj.day, obj.hour, obj.minute, obj.second, obj.microsecond)
    zone = get_localzone()
    print('>>> zone: ', zone)
    print('>>> datetime.now: ', datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
    print('>>> utc now: ', obj.strftime('%Y-%m-%d %H:%M:%S'))

先后设置Linux系统的时区变量TZ(例如:export TZ='America/New_York'和export TZ='Asia/Shanghai')
结果输出:

>>> zone:  America/New_York
>>> datetime.now:  2020-10-27 07:12:44
>>> utc now:  2020-10-27 19:12:44

>>> zone:  Asia/Shanghai
>>> datetime.now:  2020-10-27 19:13:15
>>> utc now:  2020-10-27 19:13:15

从上面可见,datetime.now()的方式会跟随时区变化,但是utc_now()的方式获取到的值不随系统时区变化。

相信大家已经了解了任何时区下都准确获取UTC+8时间的方法。
好啦,今天的实用技巧分享就到这里!



欢迎大家多多订阅我,每天分享一个实用知识点,共成长,交个朋友!下期见~~
微信公众号: chongtanjishu
GitHub: https://github.com/streamDream
***具有MySQL的ORM和Client功能的库(pip install mysql-stream),欢迎大家下载使用,多多交流***
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值