如何在 Python 中解析帶有縮寫時區名稱的日期/時間字串?

Linda Hamilton
發布: 2024-10-24 08:58:30
原創
367 人瀏覽過

How to Parse Date/Time Strings with Abbreviated Timezone Names in Python?

在Python 中解析帶有縮寫時區名稱的日期/時間字串

處理日期和時間資料時的一個常見任務是解析表示的字串時間戳。這些時間戳通常會包含縮寫的時區名稱,這會為解析它們帶來挑戰。

在 Python 中,dateutil 函式庫提供了解析日期/時間字串的 parse() 函數。但是,預設情況下,parse() 無法辨識縮寫的時區名稱。

要處理縮寫的時區名稱,您可以將時區縮寫字典傳遞給parse() 的 tzinfos 參數。此字典應將時區縮寫映射到對應的 GMT 偏移量(以秒為單位)。

以下是建立時區縮寫字典的方法:

<code class="python">tz_str = '''-12 Y
-11 X NUT SST
-10 W CKT HAST HST TAHT TKT
-9 V AKST GAMT GIT HADT HNY
-8 U AKDT CIST HAY HNP PST PT
-7 T HAP HNR MST PDT
-6 S CST EAST GALT HAR HNC MDT
-5 R CDT COT EASST ECT EST ET HAC HNE PET
-4 Q AST BOT CLT COST EDT FKT GYT HAE HNA PYT
-3 P ADT ART BRT CLST FKST GFT HAA PMST PYST SRT UYT WGT
-2 O BRST FNT PMDT UYST WGST
-1 N AZOT CVT EGT
0 Z EGST GMT UTC WET WT
1 A CET DFT WAT WEDT WEST
2 B CAT CEDT CEST EET SAST WAST
3 C EAT EEDT EEST IDT MSK
4 D AMT AZT GET GST KUYT MSD MUT RET SAMT SCT
5 E AMST AQTT AZST HMT MAWT MVT PKT TFT TJT TMT UZT YEKT
6 F ALMT BIOT BTT IOT KGT NOVT OMST YEKST
7 G CXT DAVT HOVT ICT KRAT NOVST OMSST THA WIB
8 H ACT AWST BDT BNT CAST HKT IRKT KRAST MYT PHT SGT ULAT WITA WST
9 I AWDT IRKST JST KST PWT TLT WDT WIT YAKT
10 K AEST ChST PGT VLAT YAKST YAPT
11 L AEDT LHDT MAGT NCT PONT SBT VLAST VUT
12 M ANAST ANAT FJT GILT MAGST MHT NZST PETST PETT TVT WFT
13 FJST NZDT
11.5 NFT
10.5 ACDT LHST
9.5 ACST
6.5 CCT MMT
5.75 NPT
5.5 SLT
4.5 AFT IRDT
3.5 IRST
-2.5 HAT NDT
-3.5 HNT NST NT
-4.5 HLV VET
-9.5 MART MIT'''

tzd = {}
for tz_descr in map(str.split, tz_str.split('\n')):
    tz_offset = int(float(tz_descr[0]) * 3600)
    for tz_code in tz_descr[1:]:
        tzd[tz_code] = tz_offset</code>
登入後複製

使用時區縮寫字典,您可以解析您的日期/time string:

<code class="python">import dateutil.parser as dp

s = 'Sat, 11/01/09 8:00PM EST'
dt = dp.parse(s, tzinfos=tzd)

print(dt)
# Output: 2009-11-01 20:00:00-05:00</code>
登入後複製

注意

需要注意的是,時區命名沒有明確定義,因此在解析縮寫時區時可能會出現一些衝突。建議在解釋解析的時間戳記時仔細考慮資料的上下文和位置。

以上是如何在 Python 中解析帶有縮寫時區名稱的日期/時間字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!