[转] 使用Python标准库获取当前北京时间 (无需pytz)

1个月前 64次点击 来自 其他

原文地址:(https://www.feitsui.com/zh-hans/article/25

中国(大陆、香港、澳门、台湾)、新加坡、马来西亚、文莱、菲律宾均使用UTC+08:00时间且不实施夏时制。 因此无需pytz库,使用Python标准库即可计算当前时间及日期。 此方法不受系统默认时区的影响。

在时区信息数据库中,Asia/Shanghai代表北京时间(中国标准时间),因为上海是人口最多的城市。

from datetime import datetime
from datetime import timedelta
from datetime import timezone

SHA_TZ = timezone(
    timedelta(hours=8),
    name='Asia/Shanghai',
)

# 协调世界时
utc_now = datetime.utcnow().replace(tzinfo=timezone.utc)
print(utc_now, utc_now.tzname())
print(utc_now.date(), utc_now.tzname())

# 北京时间
beijing_now = utc_now.astimezone(SHA_TZ)
print(beijing_now, beijing_now.tzname())
print(beijing_now.date(), beijing_now.tzname())

# 系统默认时区
local_now = utc_now.astimezone()
print(local_now, local_now.tzname())
print(local_now.date(), local_now.tzname())

计算结果

2020-05-01 11:31:20.692283+00:00 UTC
2020-05-01 UTC
2020-05-01 19:31:20.692283+08:00 Asia/Shanghai
2020-05-01 Asia/Shanghai
2020-05-01 21:31:20.692283+10:00 AEST
2020-05-01 AEST
Card image cap
开发者雷

尘世间一个小小的开发者,每天增加一些无聊的知识,就不会无聊了

要加油~~~

技术文档 >> 系列应用 >>
热推应用
Let'sLearnSwift
学习Swift的入门教程
PyPie
Python is as good as Pie
标签