Vorwort
Ich bin kürzlich auf ein Problem gestoßen: Meine server
und client
liegen nicht in derselben Zeitzone und die server
-Zeitzone ist EDT , das ist die östliche Zeitzone der Vereinigten Staaten, client
, ist mein eigener Computer, die Zeitzone ist China Standard Time Zone, East Eighth District. Zu Testzwecken muss ich eine Uhrzeit an server
senden, damit der Server zu diesem Zeitstempel einige Aktionen ausführen kann. Dieser Zeitstempel ist normalerweise die aktuelle Zeit plus 2 Minuten oder einige Minuten.
Normalerweise liegt der Osten der USA während der Sommerzeit 12 Stunden hinter uns, also subtrahieren Sie einfach diese 12 Stunden und addieren Sie dann zwei Minuten. Sie können Zeitstempel basierend auf server
senden, aber nur die Hälfte der Zeit Es ist Sommerzeit, also denken Sie darüber nach, dies auf der Grundlage der Zeitzone vorzunehmen. Nach der Suche auf Baidu verfügt Python über ein Modul pytz
, das sich auf Zeitzonen bezieht, aber es ist keine builtin
-Methode und muss daher installiert werden.
1. Installieren Sie zuerst pytz, pip install pytz.
2. Testen Sie das Wasser und drucken Sie die Zeitzone der Vereinigten Staaten aus:
#-*-coding:utf-8-*- #/usr/bin/env python import pytz print(pytz.country_timezones('us'))#[u'America/New_York', u'America/Detroit', u'America/Kentucky/Louisville', u'America/Kentucky/Monticello', u'America/Indiana/Indianapolis', u'America/Indiana/Vincennes', u'America/Indiana/Winamac', u'America/Indiana/Marengo', u'America/Indiana/Petersburg', u'America/Indiana/Vevay', u'America/Chicago', u'America/Indiana/Tell_City', u'America/Indiana/Knox', u'America/Menominee', u'America/North_Dakota/Center', u'America/North_Dakota/New_Salem', u'America/North_Dakota/Beulah', u'America/Denver', u'America/Boise', u'America/Phoenix', u'America/Los_Angeles', u'America/Anchorage', u'America/Juneau', u'America/Sitka', u'America/Metlakatla', u'America/Yakutat', u'America/Nome', u'America/Adak', u'Pacific/Honolulu']
Es gibt so viele Orte, aber da es im Osten liegt, wählen Sie einfach New York.
3. Drucken Sie als Nächstes die aktuelle Uhrzeit im Osten der USA aus.
#-*-coding:utf-8-*- #/usr/bin/env python import pytz import time import datetime tz = pytz.timezone('America/New_York') a = datetime.datetime.now(tz).strftime("%Y-%m-%d %H:%M:%S") print(a)
#2016-08-18 02:26:53
4. und dann zurück in das Standardformat konvertieren:
#-*-coding:utf-8-*- #/usr/bin/env python import pytz import time import datetime print(pytz.country_timezones('us')) tz = pytz.timezone('America/New_York') a = datetime.datetime.now(tz).strftime("%Y-%m-%d %H:%M:%S") print(a) b=time.mktime(time.strptime(a,'%Y-%m-%d %H:%M:%S'))+int(2)*60 print(time.strftime("%Y-%m-%d %H:%M",time.localtime(b)))
#2016-08-18 02:28
Mehr Python verwendet zum Konvertieren das Modul pytz Für Artikel zum Thema Zeitzone beachten Sie bitte die chinesische PHP-Website!