Python 如何修改程序默认时区

作者:猫大叔 时间:2022-10-07 15:32:16 

如何修改程序默认时区

由于系统安装时时区可能选择不对,并不是中国的东八区,导致依赖于日期时间函数无法正常使用

找到一个比较简单的方法

程序启动时加一行代码即可

os.environ['TZ'] = 'Asia/Shanghai'

关于datetime时区问题

使用阿里云函数计算功能,基于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的计时时区要固定

来源:https://wiker.blog.csdn.net/article/details/88958448

标签:Python,修改,默认时区
0
投稿

猜你喜欢

  • javascript demo 基本技巧

    2024-04-29 13:24:45
  • 详解PANDAS 数据合并与重塑(join/merge篇)

    2022-12-13 04:02:08
  • 微信小程序 云开发模糊查询实现解析

    2023-08-24 14:47:57
  • JS数组Array常用方法汇总+实例

    2024-04-30 10:42:02
  • 实例详解mysql子查询

    2024-01-26 22:22:29
  • Go语言使用Gob传输数据

    2023-08-06 05:12:28
  • Python 中的 Counter 模块及使用详解(搞定重复计数)

    2022-08-22 15:46:17
  • pyqt5蒙版遮罩mask,setmask的使用

    2022-04-05 21:00:58
  • 特效代码:弹出一个淡入淡出的提示框

    2008-05-22 17:11:00
  • 在pycharm中python切换解释器失败的解决方法

    2021-02-01 20:53:58
  • 安装ElasticSearch搜索工具并配置Python驱动的方法

    2021-03-12 12:07:52
  • Mysql命令大全(完整版)

    2024-01-13 15:03:35
  • Vue.2.0.5过渡效果使用技巧

    2024-04-10 10:33:12
  • go实现文件的创建、删除与读取示例代码

    2023-06-17 05:10:50
  • 安装和使用percona-toolkit来辅助操作MySQL的基本教程

    2024-01-14 17:25:04
  • ASP.NET MVC实现区域或城市选择

    2023-07-13 17:50:00
  • MySQL UNION操作符基础知识点

    2024-01-21 10:24:31
  • MySQL的存储引擎InnoDB和MyISAM

    2024-01-26 02:19:30
  • MySQL数据库的事务和索引详解

    2024-01-21 00:40:48
  • 通过python模糊匹配算法对两个excel表格内容归类

    2023-02-14 20:57:49
  • asp之家 网络编程 m.aspxhome.com