python中pytz指的是什么

  介绍

这篇文章主要介绍python中pytz指的是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

pytz模块常用于时区的转换,常常配合datetime一起使用。我们知道datetime除了数据方法生成的时间是没有时区概念,其他如时间、日期时间等都是有时区概念,即指定了tzinfo信息。

在祝辞祝辞import  datetime   在祝辞祝辞,datetime.datetime.now (tz)   datetime.datetime(2009,, 2,, 21日,15日,12日,33岁,906000年,tzinfo=& lt; DstTzInfo  & # 39;亚洲/上海# 39;,中科+ 8:00:00  STD>)   在祝辞祝辞,datetime.datetime(2009,, 2,, 21日,15日,12日,33岁,tzinfo=tz)   datetime.datetime(2009,, 2,, 21日,15日,12日,33岁,tzinfo=& lt; DstTzInfo  & # 39;亚洲/上海# 39;,以前+ 8:06:00  STD>)   在祝辞祝辞,datetime.date(2009,, 2,, 21日,tzinfo=tz)   Traceback  (most  recent  call 最后一个):   File “& lt; stdin>“, line  1,拷贝& lt; module>   TypeError: & # 39; tzinfo& # 39;, is  an  invalid  keyword  argument  for 却;能够函数   在祝辞祝辞,datetime.time(15日,12日,33岁,tzinfo=tz)   datetime.time(15日,12日,33岁,tzinfo=& lt; DstTzInfo  & # 39;亚洲/上海# 39;,以前+ 8:06:00  STD>)

<强>时区转换

<强>· pytz.country_timezones(“国家代码”):此方法可以拿到某个国家的时区名列表。

在祝辞祝辞(pytz.country_timezones (& # 39; cn # 39;)   [& # 39;亚洲/上海# 39;,,& # 39;亚洲/乌鲁木齐# 39;]

<强>· pytz.timezone(“时区名”):此方法能获取一个tzinfo对象,该对象可在datetime生成时间中以参数的形式放入,即可生成对应时区的时间。

在祝辞祝辞utc =, pytz.timezone (& # 39; utc # 39;)   在祝辞祝辞datetime.datetime.now (tz=utc)   2019 - 05 - 10,10:53:46.000929 + 0

实际上,现在时间为18:53:46

<强>·查看有哪些时区

pytz有all_timezones, common_timezones这两个属性来查看有哪些时区。

得到pytz  import  all_timezones, common_timezones

<强>·强时间按时区转换

这要用到datetime模块的astimezone方法来实现。如下所示,开始生成本地时间,然后在转成utc时间。

import  datetime   import  pytz   时间=utc  pytz.timezone (& # 39; utc # 39;)   时间=now_time  datetime.datetime.now ()   时间=utc_time  now_time.astimezone (tz=utc)   print (now_time)已知的,utc_time表示 2019 - 05 - 10,19:02:53.499513  2019 - 05 - 10, 11:02:53.499513 + 0

对于有采用了夏时制的要使用时区对象的normzlize方法来处理,如下所示:

import  datetime   import  pytz   时间=utc  pytz.timezone (& # 39; utc # 39;)   时间=now_time  datetime.datetime.now ()   时间=utc_time  utc.normalize (now_time.astimezone (tz=utc))   print (now_time)已知的,utc_time表示 2019 - 05 - 10,19:08:25.286690  2019 - 05 - 10, 11:08:25.286690 + 0

<强>·以前问题

以前,这是当地时间的缩写,网上查一查意思是本地平均时。而且时间是+ 8:06说明与UTC的时差不是8个小时整。下面有一个问题是,当我们用pytz.timezone(& # 39;亚洲/上海# 39;)生成的时区是以前,而非标准的春秋国旅(就是中央标准时间的意思)。那么这会造成什么后果呢?下面来展示下:

,,   & lt; DstTzInfo  & # 39;亚洲/上海# 39;,以前+ 8:06:00  STD>   在祝辞祝辞d =, datetime.datetime(12 2019 5, 10, 19日,30日,tzinfo=tz)   在祝辞祝辞d   datetime.datetime(2019, 5日,10日,19日,12日,30日,tzinfo=& lt; DstTzInfo  & # 39;亚洲/上海# 39;,以前+ 8:06:00  STD>)   在祝辞祝辞d =, d.astimezone (utc)   在祝辞祝辞d   datetime.datetime(2019, 5, 10, 11日,6日,30日,tzinfo=& lt; UTC>)   在祝辞祝辞d.astimezone (tz),   datetime.datetime(2019, 5日,10日,19日,6日,30日,tzinfo=& lt; DstTzInfo  & # 39;亚洲/上海# 39;,中科+ 8:00:00  STD>)

由上述可以发现,刚开始由datetime.datetime()生成的时间是以前,接下来我将其转换为UTC时区的时间,最后又转回来,我们可以发现,现在的时间又变成了CST标准。而这两个标准,就直接导致其相差了6分钟。

下面我们可以用时区对象的本地化方法,将以前准换为春秋国旅,使其统一。

python中pytz指的是什么