本節書摘來自華章計算機《python語言程式設計》一書中的第2章,第2.12節,作者:[美]梁勇(y. daniel liang) 更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。
這裡的問題是編寫一個顯示目前gmt時間的程式,格式為小時:分鐘:秒,例如,13:19:18。time子產品中的time()函數傳回以毫秒為精度的從1970年1月1日00:00:00開始到現在的gmt時間,如圖2-1所示。這個時間被稱作unix時間點。這個時間點是時間的開始。1970年是unix作業系統正式釋出的年份。例如:time.time()傳回1285543663.205,它表示1285543663秒205微秒。

你可以利用這個函數擷取目前的時間,然後計算出目前秒數、分數和小時數,如下所示:
1)通過調用time.time()擷取目前時間(自1970年1月1日零時起)(例如,1203183068.328)。
2)使用int函數來擷取總秒數totalseconds(int(1203183068.328)=1203183068)。
3)用totalseconds%60來求現在的秒數(1203183068seconds%60=8,即目前的秒數)。
4)用totalseconds除以60求總分鐘數totalminutes(1203183068seconds//60=20053051分鐘)。
5)用totalminutes%60來求目前分鐘數(20053051minutes%60=31,即現在的分鐘數)。
6)用totalminutes除以60來求總小時數totalhours(20053051minutes//60=334217小時)。
7)從總小時數totalhours%24來求現在的小時數(334217hours%24=17,即目前小時數)。
程式清單2-7給出這個完整的程式。
程式清單2-7 showcurrenttime.py
https://yqfile.alicdn.com/b838071738bca94a201d24b3de94a5ffdfd50b73.png
" >
第3行調用time.time()傳回以秒為機關的帶微秒精度的浮點值表示的目前時間。秒數、分鐘數和小時數是通過//和%運算符從目前時間中計算出的(第6~21行)。
在示例運作中,顯示數字8為秒數。而希望的輸出應該是08。這可以使用一個在一個數字前加0的函數來修正(參見程式設計題6.48)。
檢查點
2.19 什麼是unix時間點?
2.20 time.time()傳回的是什麼?
2.21 如何從time.time()的傳回值中擷取秒數?