您好,登录后才能下订单哦!
这篇文章主要介绍“Python怎么修改程序默认时区”,在日常操作中,相信很多人在Python怎么修改程序默认时区问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python怎么修改程序默认时区”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
由于系统安装时时区可能选择不对,并不是中国的东八区,导致依赖于日期时间函数无法正常使用
程序启动时加一行代码即可
os.environ['TZ'] = 'Asia/Shanghai'
使用阿里云函数计算功能,基于python3构建函数,在本机通过datetime.now获取当前时间与数据库存储时间对比,获取时间差,可正常运行。
上传到阿里云后运行错误,后检测发现阿里云服务器默认时间为utc时间。解决方法如下。
第三方模块
pytz可以很方便的修改时区,但是需要再引入一个模块,所以没用这个。
import pytz import datetime tz = pytz.timezone('Asia/Shanghai') datetime.datetime.now(tz)#获得此时区的当期那时间 #可以通过pytz.timezone('cn')获取中国的所有可用的时区 #['Asia/Shanghai', 'Asia/Harbin', 'Asia/Chongqing', 'Asia/Urumqi', 'Asia/Kashgar']
直接修改时区
下面转子
# 拿到UTC时间,并强制设置时区为UTC+0:00: >>> utc_dt = datetime.utcnow().replace(tzinfo=timezone.utc) >>> print(utc_dt) 2015-05-18 09:05:12.377316+00:00 # astimezone()将转换时区为北京时间: >>> bj_dt = utc_dt.astimezone(timezone(timedelta(hours=8))) >>> print(bj_dt) 2015-05-18 17:05:12.377316+08:00 # astimezone()将转换时区为东京时间: >>> tokyo_dt = utc_dt.astimezone(timezone(timedelta(hours=9))) >>> print(tokyo_dt) 2015-05-18 18:05:12.377316+09:00 # astimezone()将bj_dt转换时区为东京时间: >>> tokyo_dt2 = bj_dt.astimezone(timezone(timedelta(hours=9))) >>> print(tokyo_dt2) 2015-05-18 18:05:12.377316+09:00
此方法直接获取很容易,包括使用pytz,但是这样获取到的dt类型都是带时区类型,此时直接和sql获取到的时间比较会出现“带时区与不带时区类型不可转换”的错误
直接加减
utc_dt = datetime.utcnow() bj_dt = utc_dt+timedelta(hours=8) delta_dt = bj_dt - sql_dt
此方案要求sql的计时时区要固定
到此,关于“Python怎么修改程序默认时区”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。