Python小知识:时区问题

时区问题

昨天晚上吃了火锅,从晚上开始到现在一直拉肚子,感觉很虚。

我一直觉得火锅应该少吃,一是太烫,对口腔不好,二是容易吃坏肚子和容易吃多。

总之,我以后要少吃。这是我个人的感觉,喜欢吃火锅的小伙伴不要被我影响胃口。

今天谈谈时区的问题,现在是北京时间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)

推荐阅读

表弟说,这个Python定时任务,能挣五千,问我信吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值