Maison  >  Article  >  développement back-end  >  Python utilise le module pytz pour convertir les fuseaux horaires

Python utilise le module pytz pour convertir les fuseaux horaires

高洛峰
高洛峰original
2017-02-25 10:47:041333parcourir

Avant-propos

J'ai récemment rencontré un problème : mon server et mon client ne sont pas dans le même fuseau horaire, et le fuseau horaire server est EDT , qui est le fuseau horaire de l'Est des États-Unis, client, est mon propre ordinateur, le fuseau horaire est le fuseau horaire standard de la Chine, huitième district de l'Est. Pour les besoins de tests, je dois envoyer une heure à server afin que le serveur puisse effectuer certaines actions à cet horodatage. Cet horodatage correspond généralement à l'heure actuelle plus 2 minutes ou quelques minutes.

Habituellement, l'est des États-Unis a 12 heures de retard sur nous à l'heure d'été, il suffit donc de soustraire ces 12 heures, puis d'ajouter deux minutes. Vous pouvez envoyer des horodatages basés sur server, mais seulement la moitié du temps. est l’heure d’été, alors pensez à le faire en fonction du fuseau horaire. Après une recherche sur Baidu, Python a un module pytz lié ​​aux fuseaux horaires, mais ce n'est pas une méthode builtin, il doit donc être installé.

1. Installez d'abord pytz, pip install pytz.

2. Testez l'eau et imprimez le fuseau horaire des États-Unis :

#-*-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']

Il y a tellement d'endroits, mais comme c'est l'Est, choisissez simplement New York.

3. Ensuite, imprimez l'heure actuelle dans l'Est des États-Unis.

#-*-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. Convertissez le temps en secondes, ajoutez 120 secondes, puis reconvertissez au format standard :

#-*-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

Plus Python utilise le module pytz pour convertir Pour les articles liés au fuseau horaire, veuillez faire attention au site Web PHP chinois !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn