109 Stimmen

Zeitzoneninformationen des Systems in Python abrufen?

Ich möchte die Standardzeitzone (PST) meines Systems von Python erhalten. Wie kann ich das am besten machen? Ich möchte vermeiden, einen anderen Prozess zu forken.

12voto

Für Python 3.6+ kann dies leicht durch folgenden Code erreicht werden:

import datetime
local_timezone = datetime.datetime.utcnow().astimezone().tzinfo

print(local_timezone)

Aber mit Python < 3.6 rufen astimezone() auf naive datetime funktioniert nicht. Also müssen wir es auf eine etwas andere Weise machen.

Also für Python 3.x,

import datetime
local_timezone = datetime.datetime.now(datetime.timezone.utc).astimezone().tzinfo

print(local_timezone)

Beispielhafte Ausgabe:
Auf dem niederländischen Server (Python 3.6.9): CEST
Auf Bangladesh Server (Python 3.8.2): +06

Weitere Einzelheiten finden Sie auf dieser Seite Gewinde .

5voto

Daniel Punkte 7078

Um die Zeitzoneninformationen in Form einer datetime.tzinfo Objekt, verwenden Sie dateutil.tz.tzlocal() :

from dateutil import tz
myTimeZone = tz.tzlocal()

Dieses Objekt kann in der tz Parameter von datetime.datetime.now() :

from datetime import datetime
from dateutil import tz
localisedDatetime = datetime.now(tz = tz.tzlocal())

oder die tz Parameter von datetime Objekt über datetime.datetime.astimezone() :

from datetime import datetime
from dateutil import tz
unlocalisedDatetime = datetime.now()
localisedDatetime = unlocalisedDatetime.astimezone(tz = tz.tzlocal())

2voto

Gram Punkte 331

Abgleich mit UTC als timedelta :

from datetime import datetime, timezone

now = datetime.now()
now.replace(tzinfo=timezone.utc) - now.astimezone(timezone.utc)

Oder so (obskurer, funktioniert aber auch):

datetime.now(timezone.utc).astimezone().tzinfo.utcoffset(None)

Beide Lösungen führen zu demselben Ergebnis. Zum Beispiel: datetime.timedelta(seconds=7200)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X