pytz库是python自带的库,不需要pip install 安装的。
示例代码: 【本地化时间和日期算术】
import pytz
from pytz import timezone
from datetime import datetime, timedelta
utc = pytz.utc
print(utc)
print(type(utc))
print()
print(type())
print("*" * 100)
beijing = timezone('Asia/Shanghai')
print(beijing)
print(type(beijing))
print()
print(type())
print("*" * 100)
tokyo = timezone('Asia/Tokyo')
print(tokyo)
print(type(tokyo))
print()
print(type())
运行结果:
构建本地化时间的方法:
第一种是使用pytz库提供的 localize() 方法。这主要用于本地化一个没有时区信息的日期时间。
示例代码2:
import pytz
from pytz import timezone
from datetime import datetime, timedelta
utc = pytz.utc
print()
print("*" * 100)
beijing = timezone('Asia/Shanghai')
fmt = '%Y-%m-%d %H:%M:%S %Z%z'
loc_dt = beijing.localize((datetime(2022, 8, 13, 12, 0, 0)))
print(loc_dt)
print(loc_dt.strftime(fmt))
运行结果:
第二种方法是使用标准 astimezone() 方法转换现有的本地化时间。
示例代码3:
import pytz
from pytz import timezone
from datetime import datetime, timedelta
utc = pytz.utc
print()
print("*" * 100)
beijing = timezone('Asia/Shanghai')
fmt = '%Y-%m-%d %H:%M:%S %Z%z'
loc_dt = beijing.localize((datetime(2022, 8, 13, 12, 0, 0)))
print(loc_dt)
print(loc_dt.strftime(fmt))
print("*" * 100)
tokyo = timezone('Asia/Tokyo')
print()
jp_dt = loc_dt.astimezone(tokyo)
print(jp_dt)
print(jp_dt.strftime(fmt))
运行结果:
pytz库还可以计算两地的时间差:如计算北京和东京的时间差。
示例代码4:
from pytz import timezone
from datetime import datetime
beijing = timezone('Asia/Shanghai')
print()
tokyo = timezone('Asia/Tokyo')
print()
timestamp = datetime.utcnow()
dt_cn = beijing.localize(timestamp)
dt_jp = tokyo.localize(timestamp)
print("Beijing and tokyo timestamp:", dt_cn - dt_jp)
运行结果: