大家好,我是冲冲,一名主要从事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),欢迎大家下载使用,多多交流***