Home  >  Article  >  Backend Development  >  Python uses the module pytz to convert time zones

Python uses the module pytz to convert time zones

高洛峰
高洛峰Original
2017-02-25 10:47:041303browse

Preface

I recently encountered a problem: my server and client are not in the same time zone, The time zone of server is EDT, which is the Eastern Time Zone of the United States. client is my own computer. The time zone is China Standard Time Zone, East Eighth District. For testing needs, I need to send a time to server so that the server can perform some actions at this timestamp. This timestamp is usually the current time plus 2 minutes or a few minutes.

Usually the Eastern United States is 12 hours behind us during daylight saving time, so directly subtract these 12 hours, and then add two minutes, you can send a timestamp based on server, but only Half of the time is in daylight saving time, so consider doing it based on time zone. After searching on Baidu, Python has a module pytz that is related to time zones, but it is not a builtin method, so it needs to be installed.

1. First install pytz, pip install pytz.

2. Test the water and print out the time zone of the United States:

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

There are so many places, but since it’s the east, just choose New York.

3. Next, print out the current time in East America.

#-*-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. Convert the time to seconds, add 120 seconds, and then convert back to standard format:

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

For more articles related to Python using the pytz module to convert time zones, please pay attention to the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn