2017-11-22 2 views
0

Ich muss eine Reihe von Zeitberechnungen zu EST-Begriffen machen, ist die 2. der beiden Druckanweisungen der geeignete Weg, um sicherzustellen, dass datetime.now() die entsprechende TZ-bewusste EST-Zeit von überall auf der Welt zurückgibt? Ich nehme an, der Grund, warum sie beide die gleichen Werte zurückgeben, ist, weil meine lokale Zeit EST ist. Meine Logik besteht darin, TZ in UTC bewusst zu machen und dann in EST zu konvertieren, so dass ich mich nie auf "lokale" Zeit stütze.Soll ich datetime.now() Zeitzone bewusst machen, bevor Sie in EST konvertieren?

from datetime import datetime 
from pytz import timezone 

EST = timezone('America/New_York') 

print(datetime.now(EST)) 
print(datetime.now(timezone('UTC')).astimezone(EST)) 

gibt:

2017-11-22 16:58:55.236498-05:00 
2017-11-22 16:58:55.237080-05:00 

Antwort

1

Diese werden gleichzeitig drucken, wo immer Sie sind. Ich bin nicht in EST, und beide geben Ihre Ortszeit. Ortszeit kommt von den Standardargumenten:

Ihre erste Zeile spezifiziert, dass Sie die Zeit in EST wünschen. Die Sekunde gibt UTC an, konvertiert sie aber in EST.

Funktioniert das für Sie?

+0

Ja, das macht es für mich klar. Ich bin nicht sicher, warum ich dachte, pytz würde die Standardargumente nicht außer Kraft setzen – metersk

Verwandte Themen