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']} |
一旦您选择了一个特定的时区,如
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 |