在 Python 中更改时区

有时,产品或基础设施工程师需要在位于世界各地的基础设施上工作。他们必须与位于美国、亚洲、欧洲和英国等地的机器合作。因此,时区对于 Python 来说更为重要。

随着当今编程语言的不断进步,几乎所有编程语言都维护了多个模块。Python 有一个名为 的时区包pytz,可以实时进行跨平台时区计算。


安装 pytz 模块

首先,我们将导入pytz模块的时区库。pip命令可用于安装该模块。

pip install pytz

导入必要的模块

此外,我们需要从 DateTime 模块导入 DateTime。为了保持一致性,我们可以指定日期和时间输出的格式。

1
2
from pytz import timezone
from datetime import datetime

获取当前日期和时间

在此程序中,我们将格式指定为 YY-MM-DD HH:MM:SS。

执行代码时,我们将调用 DateTime 库的 now() 方法以指定格式获取当前时间。另一方面,输出时区格式将采用其 DateTime 对象格式。

因此,为了使其更具可读性,我们通过调用 strftime() 方法将其转换为字符串时间格式。

1
2
3
4
5
6
time_format = '%Y-%m%d %H:%M:%S %Z%z'
default_now = datetime.now()
formatted_now = datetime.now().strftime(time_format)
 
print("Date Time in defaut format: ", default_now, '\n')
print("Date Time in string format: ", formatted_now)
Date Time in defaut format2021-11-22 09:26:40.054185
 
Date Time in string format2021-1122 09:26:40

将当前日期和时间转换为多个时区

现在我们将创建一个时区列表并循环遍历它,将当前时间转换为该时区。我们将包括美国、欧洲、亚洲的时区和标准 UTC。

1
2
3
4
5
timezones = ['US/Central', 'Europe/London',
             'Asia/Kolkata', 'Australia/Melbourne', 'UTC']
for tz in timezones:
  dateTime = datetime.now(timezone(tz)).strftime(time_format)
  print(f"Date Time in {tz} is {dateTime}")
Date Time in US/Central is 2021-1122 03:27:58 CST-0600
Date Time in Europe/London is 2021-1122 09:27:58 GMT+0000
Date Time in Asia/Kolkata is 2021-1122 14:57:58 IST+0530
Date Time in Australia/Melbourne is 2021-1122 20:27:58 AEDT+1100
Date Time in UTC is 2021-1122 09:27:58 UTC+0000

接下来,我们将循环遍历作为 DateTime 库的 now() 方法的参数创建的列表中的所有时区,以获取所有时区以及每个时区的当前时间。我们还将其转换为字符串格式以使其更易于阅读。


结论

恭喜!您刚刚学习了如何在 Python 中更改时区。希望你喜欢它!😇

喜欢该教程吗?无论如何,我建议您查看下面提到的教程:

  1. Python 日期时间模块 – 终极指南
  2. 如何使用 Python TimeDelta?
  3. 如何在Python中等待特定时间?
  4. 使用 Python strptime() 将字符串转换为日期时间

感谢您抽出宝贵时间!希望你学到新东西!😄