关于时区:python中的时区为程序

Time Zones in python for program

此程序用于查找一个国家的当前位置时间时间,然后得到你选择的地点的时间。我需要知道如何从其他国家获得时间,如中国或代码中的国家。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
   #Eric's Amazing Trip around the world in 80 days time converter#
import time
print("Welcome to Eric's Amazing Trip around the world in 80 days time converter")
print("This program helps the user change the time on the watch as they travel")
cur=input("First enter the current country")
#Displays the country of your choosing time#
print("The current time in" + cur)
#Displays the current time in the country#
print("Current time is" + time.asctime())
print()

nex=input("Next the country your travelng to")
#This display the time of whichever country you choose#
if cur=="Italy" or"italy":
    print("The current time in" + nex +"is")
elif cur=="Egypt" or"Egypt":
    print("The current time in" + nex +"is")
elif cur=="Paris" or"Paris":
    print("The current time in" + nex +"is")
elif cur=="China" or"china":
    print("The current time in" + nex +"is")
elif cur=="India" or"india":
    print("The current time in" + nex +"is")
elif cur=="Singapore" or"Singaspore":
    print("The current time in" + nex +"is")


一般来说,一个国家可能有多个时区,例如,俄罗斯有21个时区:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
>>> import pytz
>>> pprint(pytz.country_timezones['ru'])
['Europe/Kaliningrad',
 'Europe/Moscow',
 'Europe/Simferopol',
 'Europe/Volgograd',
 'Europe/Samara',
 'Asia/Yekaterinburg',
 'Asia/Omsk',
 'Asia/Novosibirsk',
 'Asia/Novokuznetsk',
 'Asia/Krasnoyarsk',
 'Asia/Irkutsk',
 'Asia/Chita',
 'Asia/Yakutsk',
 'Asia/Khandyga',
 'Asia/Vladivostok',
 'Asia/Sakhalin',
 'Asia/Ust-Nera',
 'Asia/Magadan',
 'Asia/Srednekolymsk',
 'Asia/Kamchatka',
 'Asia/Anadyr']

不同的时区可能有不同的UTC偏移量。

尽管在你的例子中,除中国以外的所有国家都有一个时区:

1
2
3
4
5
6
7
8
>>> country_codes = {country: code for code, country in pytz.country_names.items()}
>>> {c: pytz.country_timezones[country_codes[c]]
...  for c in"Italy Egypt China India Singapore".split()}
{'China': ['Asia/Shanghai', 'Asia/Urumqi'],
 'Egypt': ['Africa/Cairo'],
 'India': ['Asia/Kolkata'],
 'Italy': ['Europe/Rome'],
 'Singapore': ['Asia/Singapore']}

一旦您选择了一个特定的时区,如Asia/Shanghai,就很容易在其中找到当前时间:

1
2
3
4
5
6
7
#!/usr/bin/env python
from datetime import datetime
import pytz # $ pip install pytz

current_time = datetime.now(pytz.timezone('Asia/Shanghai'))
print(current_time.strftime('%Y-%m-%d %H:%M:%S %Z%z'))
# -> 2015-08-19 19:03:22 CST+0800