Python-pytz: konvertieren Sie die lokale Zeit zu utc. Die Lokalisierung scheint nicht zu konvertieren

Ich habe eine Datenbank, die speichert datetime-wie UTC. Ich muss nachschlagen, Informationen aus einer bestimmten Zeit, sondern das Datum und die Uhrzeit werden in der lokalen Zeit, sagen wir mal 'Europe/Copenhagen'. Ich bin angesichts dieser als:

year = 2012; month = 12; day = 2; hour = 13; min = 1;

So, ich muss konvertieren Sie diese in UTC, also kann ich Sie nachschlagen in der Datenbank. Ich möchte dies tun, indem Sie pytz. Ich bin auf der Suche localize:

 local_tz = timezone('Europe/Copenhagen')
 t = local_tz.localize(datetime.datetime(year, month, day, hour, min))

Aber ich bin verwirrt über localize(). Ist dies unter der Annahme, dass Jahr, etc, sind mir in Ortszeit? Oder, ist es vorausgesetzt, dass Sie Sie sind in UTC und jetzt hat es Sie konvertiert lokale Zeit?

print t gibt mir:

2012-12-02 13:01:00+01:00

So scheint es, dass es davon ausgegangen, dass die original-Jahr, etc war in utc; Stunden ist jetzt 13+1 statt 13. Also, was sollte ich stattdessen tun? Ich habe gelesen das pytz Dokumentation und das macht es nicht deutlicher zu mir. Es nennt eine Menge Dinge, die schwierig sind, also bin ich nicht sicher, ob pytz ist eigentlich die Lösung dieser Fragen. Und, ich weiß nicht immer, wenn die Beispiele zeigen mir Dinge, die Arbeit oder Dinge, die nicht funktionieren.

Habe ich versucht zu normalisieren:

print local_tz.normalize(t)

Gibt mir das gleiche Ergebnis wie print t.

EDIT: Mit den zahlen, die oben gegeben für Jahr usw. es sollte übereinstimmen mit der in der Datenbank enthaltenen Informationen für 2012-12-2 12:01. (seit Kopenhagen ist utc+1 auf das Datum)

InformationsquelleAutor user984003 | 2012-11-12
Schreibe einen Kommentar