Heim  >  Artikel  >  Backend-Entwicklung  >  Wie analysiere ich Datums-/Uhrzeitzeichenfolgen mit abgekürzten Zeitzonennamen in Python?

Wie analysiere ich Datums-/Uhrzeitzeichenfolgen mit abgekürzten Zeitzonennamen in Python?

Linda Hamilton
Linda HamiltonOriginal
2024-10-24 08:58:30356Durchsuche

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

Datums-/Uhrzeitzeichenfolgen mit abgekürzten Zeitzonennamen in Python analysieren

Eine häufige Aufgabe bei der Arbeit mit Datums- und Uhrzeitdaten ist das Parsen von Zeichenfolgen, die darstellen Zeitstempel. Diese Zeitstempel können häufig abgekürzte Zeitzonennamen enthalten, was das Parsen dieser Zeitstempel zu einer Herausforderung machen kann.

In Python stellt die Bibliothek dateutil die Funktion parse() zum Parsen von Datums-/Uhrzeitzeichenfolgen bereit. Allerdings erkennt parse() standardmäßig keine abgekürzten Zeitzonennamen.

Lösung

Um abgekürzte Zeitzonennamen zu verarbeiten, können Sie ein Wörterbuch mit Zeitzonenabkürzungen an übergeben tzinfos-Parameter von parse(). Dieses Wörterbuch sollte Zeitzonenabkürzungen ihren entsprechenden GMT-Offsets in Sekunden zuordnen.

So erstellen Sie das Zeitzonenabkürzungswörterbuch:

<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>

Mit dem Zeitzonenabkürzungswörterbuch können Sie dann Ihr Datum analysieren /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>

Hinweis

Es ist wichtig zu beachten, dass die Benennung von Zeitzonen nicht klar definiert ist, sodass beim Parsen abgekürzter Zeitzonen einige Konflikte auftreten können. Es wird empfohlen, bei der Interpretation der geparsten Zeitstempel den Kontext und den Speicherort Ihrer Daten sorgfältig zu berücksichtigen.

Das obige ist der detaillierte Inhalt vonWie analysiere ich Datums-/Uhrzeitzeichenfolgen mit abgekürzten Zeitzonennamen in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn