欢迎访问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)
声明:本网站资源来源于网络收集,如有侵权,请联系站长进行删除处理。 分享目的仅供大家学习和交流,请不要用于商业用途,否则后果自负。本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解。本站资源售价只是赞助,收取费用仅维持本站的日常运营所需。反馈邮箱:1159995880@qq.com