Python utilise le module pytz pour convertir les fuseaux horaires

高洛峰
Libérer: 2017-02-25 10:47:04
original
1341 Les gens l'ont consulté

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']
Copier après la connexion

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)
Copier après la connexion

#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)))
Copier après la connexion

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

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal