欢迎访问Python每天3分钟系列。
每天花3分钟时间,学习或温习一个Python知识点。
今天是第031篇:
时区问题
昨天晚上吃了火锅,从晚上开始到现在一直拉肚子,感觉很虚。
我一直觉得火锅应该少吃,一是太烫,对口腔不好,二是容易吃坏肚子和容易吃多。
总之,我以后要少吃。这是我个人的感觉,喜欢吃火锅的小伙伴不要被我影响胃口。
今天谈谈时区的问题,现在是北京时间7点多,现在美国东部是晚上6点多,而英国是凌晨0点多。
在开发企业级应用的时候,要正确的处理时区是很常见的需求,也是专业程序员应该掌握的一个知识点。也是时区的问题,昨天开会到晚上11点。
处理时区,推荐用pytz
,这也是Python自带的包,可以直接用,我们先看看有那些时区吧:
import pytz
import pprint
print('显示所有时区')
pprint.pprint(pytz.all_timezones)
打印的结果有几百行,里面可以找到我们亲爱的祖国所在的时区:
每个字符串代表一个时区,比如America/New_York是纽约时区,Asian/Shanghai是上海时区,也就是中国时区。
我们用这个字符串可以构建出相应时区对象,已经获得对应时区的时间。
看代码例子,注意读注释:
from datetime import datetime
import pytz
# 创建纽约时区
nyc = pytz.timezone('America/New_York')
# 默认的是Python电脑所在的时区
dt = datetime.now()
print(f'本地时间:{dt}')
# 指定获得纽约时区现在的时间
dt2 = datetime.now(nyc)
print(f'纽约时间:{dt}')
# 创建一个东京时区
tokyo = pytz.timezone('Asia/Tokyo')
# 把本地时间转成东京时间
dt3 = dt.astimezone(tokyo)
print(f'东京时间:{dt}')
打印结果如下:
本地时间:2022-01-13 08:07:37.010605
纽约时间:2022-01-12 19:07:37.010628-05:00
东京时间:2022-01-13 09:07:37.010605+09:00
上面主要演示了4个知识点:
-
如何创建一个时区: pytz.timezone('America/New_York')
-
默认情况下,是使用当前电脑的时区: datetime.now()
-
如果在获得当前时间的时候指定时区: datetime.now(nyc)
-
如果把一个本地时间转换成其他时区: dt.astimezone(tokyo)
原文链接:https://www.zsiss.com/5287.html,转载请注明出处。
请先
!