Python时区设置方法与pytz查询时区教程

yipeiwu_com5年前Python基础

时区的概念与转换

首先要知道时区之间的转换关系,其实这很简单:把当地时间减去当地时区,剩下的就是格林威治时间了。 例如北京时间的18:00就是18:00+08:00,相减以后就是10:00+00:00,因此就是格林威治时间的10:00。
而把格林威治时间加上当地时区,就能得到当地时间了。 例如格林威治时间的10:00是10:00+00:00,转换成太平洋标准时间就是加上-8小时,因此是02:00-08:00。
而太平洋标准时间转换成北京时间转换也一样,时区相减即可。 例如太平洋标准时间的02:00-08:00,与北京时间相差-16小时,因此结果是18:00+08:00。

Python时区的处理
发现python没有简单的处理时区的方法,不明白为什么Python不提供一个时区模块来处理时区问题。 好在我们有个第三方pytz模块,能够帮我们解决一下时区问题。

pytz简单教程

pytz查询某个的时区
可以根据国家代码查找这个国家的所有时区。

复制代码 代码如下:

>>> import pytz
>>> pytz.country_timezones('cn')
['Asia/Shanghai', 'Asia/Harbin', 'Asia/Chongqing', 'Asia/Urumqi', 'Asia/Kashgar']

pytz创建时区对象
根据上面得到的时区信息,就可以创建指定的时区对象。比如创建上海时区对象:

复制代码 代码如下:

tz = pytz.timezone('Asia/Shanghai')

得到某个时区的时间
然后在创建时间对象时进行指定上面时区,就可以得到指定时区的日期时间:

复制代码 代码如下:

>>> import datetime
>>> datetime.datetime.now(tz)

相关文章

浅谈python对象数据的读写权限

面向对象的编程语言在写大型程序的的时候,往往比面向过程的语言用起来更方便,安全。其中原因之一在于:类机制。 类,对众多的数据进行分类,封装,让一个数据对象成为一个完整的个体,贴近现实生活...

python将unicode转为str的方法

问题:  将u'\u810f\u4e71'转换为'\u810f\u4e71'   方法:  s_unicode = u'\u810f\u4e...

Python实现随机生成手机号及正则验证手机号的方法

本文实例讲述了Python实现随机生成手机号及正则验证手机号的方法。分享给大家供大家参考,具体如下: 依据 根据2017年10月份最新的手机号正则进行编码, 正则如下: (13\d|14...

Python OOP类中的几种函数或方法总结

概述 实例方法 使用实例调用时,默认传递实例本身到实例方法的第一个参数self 使用类调用时,必须传递一个实例对象到实例方法的第一个参数 静态方法 使用实例调用和类调用...

使用python实现strcmp函数功能示例

实现这个功能我相信大家一定明白他的意思了,很简单了,下面的代码大家参考使用吧复制代码 代码如下:def strcmp(str1,str2):    ...