python模块-pytz时区转换
pytz模块常用于时区的转换,常常配合datetime一起使用。我们知道datetime除了data方法生成的时间是没有时区概念,其他如time、datetime等都是有时区概念,即指定了tzinfo信息。
时区转换
实际上,现在时间为18:53:46
pytz有all_timezones、common_timezones这两个属性来查看有哪些时区。 from pytz import all_timezones,common_timezones
这要用到datetime模块的astimezone方法来实现。如下所示,开始生成本地时间,然后在转成utc时间。
2019-05-10 19:02:53.499513 2019-05-10 11:02:53.499513+00:00
对于有采用了夏时制的要使用时区对象的normzlize方法来处理,如下所示:
2019-05-10 19:08:25.286690 2019-05-10 11:08:25.286690+00:00
LMT,这是Local Mean Time的缩写,网上查一查意思是本地平均时。而且时间是+8:06,说明与UTC的时差不是8个小时整。下面有一个问题是,当我们用pytz.timezone(‘Asia/Shanghai‘) 生成的时区是LMT,而非标准的CST(就是Central Standard Time的意思)。那么这会造成什么后果呢?下面来展示下:
由上述可以发现,刚开始由datetime.datetime()生成的时间是LMT,接下来我将其转换为UTC时区的时间,最后又转回来,我们可以发现,现在的时间又变成了CST标准。而这两个标准,就直接导致其相差了6分钟。 下面我们可以用时区对象的localize方法,将LMT准换为CST,使其统一。
所以我的建议是生成带时区的时间时,一定要使用timezone.localize()来生成。不要在时间对象的构造函数中传入tzinfo的方式来实现。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- python – 改变seaborn heatmap颜色条上的刻度尺寸
- python – celery.utils.log中的get logger函数与日志记录
- Python NumPy库安装使用笔记
- python – 使用sqlalchemy数据库的PyQt应用程序
- flask开发中遇到jinja2.exceptions.UndefinedError: 'f
- 找出所有链接的python脚本
- 获取recarray属性/列python
- Python:四位数字,每位相加和的函数 ( day08_exercist01 )
- Python的串口通信(pyserial)
- 使用Python的Bottle框架写一个简单的服务接口的示例