python學習筆記——日期和時間

今天來學一下python對於時間的處理方法。
python提供了time和calendar兩個模塊來處理時間。
在python中,時間間隔是以秒爲單位的浮點小數。
每個時間戳都是以距1970年1月1日午夜多長時間來記錄的。

引入:time()的用法

time模塊中有一個time函數可以用來獲取上述所說的時間戳,我們舉個例子:

import time
print(time.time())

運行結果是:1576309616.108583
當然了,你的運行結果和我肯定不一樣。
這麼個表示法其實也是有缺陷的,我們無法表示1970年以前的時間,而且也無法表示太遙遠的未來,現在在Windows和unix上只可以表示到2038年(還有18年就到了)

時間元組

python中很多函數是把時間作爲一個含有九個數字的元組進行處理的。
時間元組的結構如下:(最右邊一列是舉例說明。並不是真的值)
在這裏插入圖片描述

獲取當前時間

我們上面說了時間戳,但是……那時間戳是人的讀的嗎?請問1972309616.108583是哪一年?
沒錯,你可以算,但這不是我們想要的,我們可以用一個更方便的方法去打印時間:

print(time.localtime(time.time()))

運行結果如下:
time.struct_time(tm_year=2019, tm_mon=12, tm_mday=14, tm_hour=15, tm_min=56, tm_sec=2, tm_wday=5, tm_yday=348, tm_isdst=0)

沒錯就是我運行這個語句的時間,相信這個比那一大串數據要清楚多了吧

獲取格式化的時間

我都能猜到你會說什麼:上面的那個時間雖然能看,但感覺還不是人看的呀?
別急,這就來解決這個問題,我們對獲取的時間進行格式化,讓它更像一個人讀的時間。

簡單的格式化

先看例子:

print(time.asctime(time.localtime(time.time())))

運行結果是:Sat Dec 14 16:07:08 2019
是不是很清晰了?終於像個人讀的了。
這裏我們用到了asctime()這個函數,這可以算作最簡單的一個格式化時間的函數了,但正因爲簡單,功能也比較少,下面我們來看一下具有更多功能的格式化方方法。

格式化日期

這裏我們用到了time模塊的strftime()函數。
這個函數看名字就知道什麼意思,strftime,string format time把時間格式化爲一個字符串,可以這麼理解(笑哭)
我們先展示一下用法:

print(time.strftime("%Y-%m-%d %H:%M:%S %Y",time.localtime()))

輸出的結果是:2019-12-14 16:14:00 2019
我們可以看出來strftime這個函數有兩個參數,一個是格式化的模式,另一個是格式化的對象時間。
格式化的符號及含義如下:
%y 兩位數的年份表示(00-99)
%Y 四位數的年份表示(000-9999)
%m 月份(01-12)
%d 月內中的一天(0-31)
%H 24小時制小時數(0-23)
%I 12小時制小時數(01-12)
%M 分鐘數(00=59)
%S 秒(00-59)
%a 本地簡化星期名稱
%A 本地完整星期名稱
%b 本地簡化的月份名稱
%B 本地完整的月份名稱
%c 本地相應的日期表示和時間表示
%j 年內的一天(001-366)
%p 本地A.M.或P.M.的等價符
%U 一年中的星期數(00-53)星期天爲星期的開始
%w 星期(0-6),星期天爲星期的開始
%W 一年中的星期數(00-53)星期一爲星期的開始
%x 本地相應的日期表示
%X 本地相應的時間表示
%Z 當前時區的名稱
%% %號本身

再補充一個函數,既然我們可以把時間戳格式化,那我們能不能把格式化的時間轉換成時間戳呢?答案是肯定的:

a = "Sat Dec 14 16:26:24 2019"
print(time.mktime(time.strptime(a,"%a %b %d %H:%M:%S %Y")))

運行結果是:1576311984.0

獲取某月的日曆

我們之前提到了python中還有另一個處理時間的模塊——calendar,中文名:日曆
所以我們自然地會想到用它獲取某個月的日曆:

import calendar
print(calendar.month(2019,12))

運行結果我就不放了,自己打開手機看一下日曆就好。

time模塊函數

下面我們列一個表格,展示一下time的其他函數:
在這裏插入圖片描述

以及,time裏還有兩個很重要的屬性:
在這裏插入圖片描述

發佈了231 篇原創文章 · 獲贊 47 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章