Python每天3分钟 – #031时区问题

欢迎访问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)

原文链接:http://www.zsiss.com/5287.html,转载请注明出处。

0

评论0

请先

爱分享推出ChatGPT国内镜像,无需魔法直接用!写文章,写代码,做PPT,做网站原创软文效果好到爆炸 https://chat.gcrup.com

社交账号快速登录