Python: timezone.localize() funktioniert nicht
Ich habe einige Probleme bekommen timezone.localize()
um korrekt zu arbeiten. Mein Ziel ist es, schnappen Sie das heutige Datum ein und konvertieren Sie es von CST, EST. Dann endlich das datetime-format, bevor spuckt es aus. Ich bin in der Lage, formatieren Sie das Datum korrekt, aber der datetime ist nicht die änderung von CST, EST. Zusätzlich, wenn ich das Datum zu formatieren sehe ich nicht die text-Darstellung der Zeitzone enthalten.
Unten habe ich aufgeführt, aus einem einfachen Programm, das ich erstellte, dieses heraus zu testen:
#! /usr/bin/python
#Test script
import threading
import datetime
import pexpect
import pxssh
import threading
from pytz import timezone
import pytz
est = timezone('US/Eastern')
curtime = est.localize(datetime.datetime.now().strftime("%a %b %d %H:%M:%S %Z %Y"))
#test time change
#curtime = datetime.datetime.now().strftime("%a %b %d %H:%M:%S %Z %Y")
class ThreadClass(threading.Thread):
def run(self):
#now = (datetime.datetime.now() + datetime.timedelta(0, 3600))
now = (datetime.datetime.now())
print "%s says Hello World at time: %s" % (self.getName(), curtime)
for i in range(3):
t = ThreadClass()
t.start()
Sie scheinen zu fehlen
danke, sorry ich tippte ein schnelles Beispiel, um meine Frage.
)
in Ihrem curtime = ...
Linie.danke, sorry ich tippte ein schnelles Beispiel, um meine Frage.
InformationsquelleAutor WorkerBee | 2013-03-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
.localize()
nimmt eine naiv-datetime-Objekt und interpretiert es als wenn es ist in dieser Zeitzone. Es tut nicht verschieben Sie die Zeit einer anderen Zeitzone. Eine naive datetime-Objekt hat keine Zeitzone Informationen in der Lage sein zu machen, dass verschieben möglich ist.Du willst zu interpretieren
now()
in Ihrem lokalen Zeitzone statt, dann verwenden Sie.astimezone()
zu interpretieren, die in einem anderen datetime-timezone:localize()
die Zeit, bevor ich versuchte, Sie ändern die Zeitzone (astimezone()
). Ich war auch die Anwendung derstrftime()
wenn ichlocalize()
ing der Zeit. Es scheint neben mit einem Verständnis vonlocalize()
undastimezone()
die Reihenfolge, in der das Datum formatiert ist, ist ebenfalls wichtig, nochmals vielen Dank.InformationsquelleAutor Martijn Pieters
Verwenden
cst.localize
um eine naive datetime in einen timezone-bewusst datetime.Dann verwenden
astimezone
konvertieren timezone-bewusst datetime in einer anderen Zeitzone.InformationsquelleAutor unutbu