Python: drucken Sie die Zeitzone aus strftime
Will ich drucken Sie die Zeitzone. Ich verwendet %Z
aber nicht drucken:
import datetime
now = datetime.datetime.now()
print now.strftime("%d-%m-%Y")
print now.strftime("%d-%b-%Y")
print now.strftime("%a,%d-%b-%Y %I:%M:%S %Z") # %Z doesn't work
Kann ich vielleicht brauchen, um zu importieren pytz
?
- Das genau ist Ihr code? Es funktioniert für mich, wenn ich entfernen Sie die Schattierung von "jetzt".
- ....naja, du brauchst timezone-bewusst datetime, und pytz funktionieren würde, so dass ich gehen werde, mit "ja"
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist ein dokumentiertes Verhalten:
datetime.now()
gibt eine naive datetime-Objekt und die%Z
einen leeren string zurück, in solchen Fällen. Sie brauchen eine bewusst datetime-Objekt statt.Drucken eine lokale Zeitzone Abkürzung, die Sie verwenden konnten
tzlocal
- Modul zurückkehren können Sie Ihre lokale Zeitzone alspytz
tzinfo Objekt enthalten können, eine historische timezone info z.B. von die tz-Datenbank:Dieser code funktioniert für Zeitzonen mit oder ohne Sommerzeit. Es arbeitet rund um die und während der DST-übergänge. Es funktioniert, wenn die lokale Zeitzone hatte unterschiedliche utc-offset in der Vergangenheit, auch wenn die C-Bibliothek verwendet, die von python hat keinen Zugang zu einer historischen Zeitzone-Datenbank auf der Plattform.
In Python 3.3+, wenn die Plattform es unterstützt, könntest du
.tm_zone
- Attribut, um die tzname:Oder mit
datetime
Modul:Der code ist portabel, aber das Ergebnis kann falsch sein, auf einigen Plattformen (ohne
.tm_zone
(datetime
zu verwenden hattime.tzname
in diesem Fall) und mit "interessant" Zeitzonen).Auf älteren Python-Versionen auf einem system mit einem "uninteressant" timezone, Sie könnte verwenden
time.tzname
:Ein Beispiel für eine "interessante" Zeitzone " Europa/Moskau Zeitzone im Zeitraum 2010-2015.
Ähnliche Themen diskutiert werden, die in Erste computer UTC-offset in Python.
now()
gibt ein Objekt der Klassedatetime.datetime
, die nicht inhärent enthalten Informationen zu seiner Zeitzone. (d.h. es ist "naiv"; siehe Beschreibung "naiv" vs. "bewusst" Datum-und Zeit-Objekte in der Dokumentation)Entsprechend der Dokumentation,
Erhalten Sie Ihre Plattform die lokale Zeitzone, die Sie verwenden sollten, wie Sie Sie vorschlagen,
pytz
. Hier ist Alex Martelli ist der code, dies zu tun:Können Sie auch die tatsächlichen UTC offset in Stunden, über:
So könnte man verwenden: