三、Python 程式
(三)副程式
1. 時間之取得
- 程式碼
| import pytz import ntplib from datetime import datetime, timedelta def TWtime(): #獲取台灣時間 timeserver = ["ntp.ntu.edu.tw", "tw.pool.ntp.org", "time.stdtime.gov.tw", "tock.stdtime.gov.tw", "watch.stdtime.gov.tw", "clock.stdtime.gov.tw", "tick.stdtime.gov.tw", "118.163.81.61", "time.windows.com", "time.google.com"] #時間伺服器網址串列 server_number = 0 #時間伺服器網址編號(0~9) status = 0 #設定狀態碼為0 try: while server_number < 10 and status != 1: #在透過NTP獲取時間超過10次或狀態碼等於1時,結束迴圈 NTPClient = ntplib.NTPClient() #啟用NTP客戶端 try: NTPServer = NTPClient.request(timeserver[server_number]) #連結NTP伺服器 NTPtime = NTPServer.tx_time #取得今天現在時間戳 Taipeitime = datetime.fromtimestamp(NTPtime, pytz.timezone("Asia/Taipei")) #取得今天現在的時間,時區設定亞洲台北 ad_year_today = str(Taipeitime.year)+"年" #今天現在台北時區的西元紀年 mg_year_today = str(int(Taipeitime.year)-1911)+"年" #今天現在台北時區的民國紀年 date_today = str(Taipeitime.month)+"月"+str(Taipeitime.day)+"日" #今天現在台北時區的西元日期 ad_year_yesterday = str((Taipeitime+timedelta(days=-1)).year)+"年" #昨天台北時區的西元紀年 mg_year_yesterday = str((Taipeitime+timedelta(days=-1)).year-1911)+"年" #昨天台北時區的民國紀年 date_yesterday = str((Taipeitime+timedelta(days=-1)).month)+"月"+str((Taipeitime+timedelta(days=-1)).day)+"日" #昨天台北時區的西元日期 status = 1 #設定狀態碼為1 except BaseException: #如果上面執行失敗,執行此區 server_number = server_number+1 #時間伺服器網址編號加1 timeserver_link = timeserver[server_number] #時間伺服器網址 except BaseException: #如果用NTP網址取得時間失敗,執行此區,原理未明 Taipeitime = datetime.now(pytz.timezone("Asia/Taipei")) #取得今天現在的時間,時區設定亞洲台北 ad_year_today = str(Taipeitime.year)+"年" #今天現在台北時區的西元紀年 mg_year_today = str(int(Taipeitime.year)-1911)+"年" #今天現在台北時區的民國紀年 date_today = str(Taipeitime.month)+"月"+str(Taipeitime.day)+"日" #今天現在台北時區的西元日期 ad_year_yesterday = str((Taipeitime+timedelta(days=-1)).year)+"年" #昨天台北時區的西元紀年 mg_year_yesterday = str((Taipeitime+timedelta(days=-1)).year-1911)+"年" #昨天台北時區的民國紀年 date_yesterday = str((Taipeitime+timedelta(days=-1)).month)+"月"+str((Taipeitime+timedelta(days=-1)).day)+"日" #昨天台北時區的西元日期 timeserver_link = "無" #設定時間伺服器網址為無 server_number = "無" #時間伺服器網址編號為無 return Taipeitime, ad_year_today, mg_year_today, date_today, ad_year_yesterday, mg_year_yesterday, date_yesterday , timeserver_link, server_number #回傳一堆時間 |
- 說明