欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python使用pytz實(shí)現(xiàn)時區(qū)使用與轉(zhuǎn)換的示例詳解

 更新時間:2025年11月04日 09:35:26   作者:Humbunklung  
這篇文章主要為大家詳細(xì)介紹了Python如何使用pytz實(shí)現(xiàn)時區(qū)使用與轉(zhuǎn)換,文中的示例代碼講解詳細(xì),具有一定的借鑒價值,有需要的小伙伴可以了解下

一、Python代碼實(shí)現(xiàn):時區(qū)轉(zhuǎn)換與時間比較

import pytz
from datetime import datetime

# 1. 獲取當(dāng)前UTC時間
utc_now = datetime.now(pytz.utc)

# 2. 轉(zhuǎn)換為目標(biāo)時區(qū)(示例:上海和紐約)
shanghai_tz = pytz.timezone('Asia/Shanghai')
newyork_tz = pytz.timezone('America/New_York')
shanghai_time = utc_now.astimezone(shanghai_tz)
newyork_time = utc_now.astimezone(newyork_tz)

# 3. 比較兩個時區(qū)的時間
time_diff = shanghai_time - newyork_time
is_same_day = shanghai_time.date() == newyork_time.date()

print(f"UTC時間: {utc_now.strftime('%Y-%m-%d %H:%M:%S %Z')}")
print(f"上海時間: {shanghai_time.strftime('%Y-%m-%d %H:%M:%S %Z')}")
print(f"紐約時間: {newyork_time.strftime('%Y-%m-%d %H:%M:%S %Z')}")
print(f"時間差: {abs(time_diff.total_seconds()/3600):.1f}小時")
print(f"是否同一天: {'是' if is_same_day else '否'}")

輸出示例

UTC時間: 2025-06-26 07:30:00 UTC
上海時間: 2025-06-26 15:30:00 CST
紐約時間: 2025-06-26 03:30:00 EDT
時間差: 12.0小時
是否同一天: 是

二、pytz時區(qū)參數(shù)表格(常用時區(qū))

下表列出高頻使用的時區(qū)(完整列表包含563個時區(qū),需通過pytz.all_timezones獲?。?/p>

大洲時區(qū)標(biāo)識代表城市/地區(qū)UTC偏移示例
亞洲Asia/Shanghai中國上海UTC+8
Asia/Tokyo日本東京UTC+9
Asia/Dubai阿聯(lián)酋迪拜UTC+4
美洲America/New_York美國紐約UTC-4 (夏令時)
America/Los_Angeles美國洛杉磯UTC-7 (夏令時)
America/Sao_Paulo巴西圣保羅UTC-3
歐洲Europe/London英國倫敦UTC+1 (夏令時)
Europe/Paris法國巴黎UTC+2 (夏令時)
Europe/Moscow俄羅斯莫斯科UTC+3
大洋洲Australia/Sydney澳大利亞悉尼UTC+10
Pacific/Auckland新西蘭奧克蘭UTC+12
非洲Africa/Cairo埃及開羅UTC+2
Africa/Johannesburg南非約翰內(nèi)斯堡UTC+2
極地Antarctica/McMurdo南極麥克默多站UTC+12
通用UTC協(xié)調(diào)世界時UTC±0

三、擴(kuò)展說明

獲取全部時區(qū)列表

import pytz
print("總時區(qū)數(shù)量:", len(pytz.all_timezones))  # 輸出563
for tz in pytz.common_timezones:  # 常用時區(qū)(約403個)
    print(tz)

關(guān)鍵注意事項

  • 夏令時影響:時區(qū)偏移量會隨夏令時變化(如紐約夏季為UTC-4,冬季為UTC-5)
  • 時區(qū)命名規(guī)范:大洲/城市格式(避免使用EST/CST等縮寫,因其不唯一)
  • 數(shù)據(jù)庫更新:通過pip install --upgrade pytz更新時區(qū)規(guī)則

時區(qū)比較場景示例

# 檢查兩個時區(qū)是否均為星期一
def is_both_monday(tz1: str, tz2: str) -> bool:
    tz1_time = datetime.now(pytz.timezone(tz1))
    tz2_time = datetime.now(pytz.timezone(tz2))
    return tz1_time.weekday() == 0 and tz2_time.weekday() == 0  # 0=周一

print(is_both_monday("Asia/Shanghai", "Europe/London"))  # 根據(jù)當(dāng)前日期返回布爾值

查看有哪些時區(qū)

pytz有all_timezones、common_timezones這兩個屬性來查看有哪些時區(qū)。

# -*- coding: utf-8 -*-
import pytz
 
print(pytz.all_timezones)
print(pytz.common_timezones)

查詢某個的時區(qū)

可以根據(jù)國家代碼查找這個國家的所有時區(qū)。

創(chuàng)建時區(qū)對象

根據(jù)上面得到的時區(qū)信息,就可以創(chuàng)建指定的時區(qū)對象。比如創(chuàng)建上海時區(qū)對象:

tz = pytz.timezone('Asia/Shanghai')

時間按時區(qū)轉(zhuǎn)換

# -*- coding: utf-8 -*-
import pytz
import datetime
 
utc = pytz.timezone('UTC')
now_time = datetime.datetime.now(tz=utc)
print(now_time)
 
shanghai = pytz.timezone('Asia/Shanghai')
shanghai_time = datetime.datetime.now(tz=shanghai)
print(shanghai_time)

得到某個時區(qū)的時間

然后在創(chuàng)建時間對象時進(jìn)行指定上面時區(qū),就可以得到指定時區(qū)的日期時間:

>>> import datetime
>>> datetime.datetime.now(tz)
datetime.datetime(2009, 2, 21, 15, 12, 33, 906000, tzinfo=<DstTzInfo 'Asia/Shanghai' CST+8:00:00 STD>)

到此這篇關(guān)于Python使用pytz實(shí)現(xiàn)時區(qū)使用與轉(zhuǎn)換的示例詳解的文章就介紹到這了,更多相關(guān)Python pytz時區(qū)使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論