python中與時間相關的一個模塊是time模塊,datetime模塊能夠看爲是time模塊的高級封裝。python
time模塊中常常用到的有一下幾個方法:函數
-
time()
用來獲取時間戳,表示的結果爲從1970年1月1日開始計算到如今時間之間的秒數。如:
time.time()
輸出:1507727656.9446979 #今天是2017/10/11 21:15:00
-
localtime()
獲取當前時間信息。包含年月日時分秒等等。返回結果以元組的形式返回。如:
time.localtime()
輸出:time.struct_time(tm_year=2017, tm_mon=10, tm_mday=11, tm_hour=21, tm_min=14, tm_sec=16, tm_wday=2, tm_yday=284, tm_isdst=0)
將時間戳轉換爲日期格式:
time.sreftime("%Y-%m-%d %H:%M:%S", time.localtime(1521879629)) #當地時間
time.sreftime("%Y-%m-%d %H:%M:%S", time.gmtime(1521879629)) #標準時間
-
strftime()
它能夠將localtime()中獲取的時間元組轉換爲自定義的日期時間格式進行。如:
time.strftime("%Y-%m-%d %H:%M:%S",struct_local_time)
輸出:2017-10-10/11/17 21:14:16
其中%Y-%m-%D %H:%M:%S即爲自定義的日期時間格式,字母有一下的含義:
%a 顯示簡化星期名稱
%A 顯示完整星期名稱
%b 顯示簡化月份名稱
%B 顯示完整月份名稱
%c 本地相應的日期和時間表示
%d 顯示當月第幾天
%H 按24小時制顯示小時
%I 按12小時制顯示小時
%j 顯示當年第幾天
%m 顯示月份
%M 顯示分鐘數)
%p 本地am或者pm的相應符
%S 顯示秒數)
%U 一年中的星期數
%w 顯示在星期中的第幾天,默認從0開始表示週一
%W 和%U基本相同
%x 本地相應日期
%X 本地相應時間
%y 去掉世紀的年份(00 - 99)
%Y 完整的年份
%Z 時區的名字(若是不存在爲空字符)
%% ‘%’字符spa
-
gmtime()
能夠將時間秒轉換爲日期時間,此時日期和時間表示的是標準時間,北京時間爲標準時間加上8個小時。不傳入參數表明當前時間即轉換time()函數的結果。如:
time.gmtime()
輸出:time.struct_time(tm_year=2017, tm_mon=10, tm_mday=11, tm_hour=13, tm_min=34, tm_sec=13, tm_wday=2, tm_yday=284, tm_isdst=0)
當傳入參數時。如:
time.gmtime(1403127843)
輸出:time.struct_time(tm_year=2014, tm_mon=6, tm_mday=18, tm_hour=21, tm_min=44, tm_sec=3, tm_wday=2, tm_yday=169, tm_isdst=0)
-
asctime()和ctime()
兩個都會返回固定格式的當前日期和時間(Wed Oct 11 21:35:28 2017),但兩個接收的參數不一樣。
asctime()接收的是元組格式的日期時間,而ctime()接收的是秒。而後都返回本地的格式化後的日期時間。如:
ctime(1403127843)
輸出:Thu Jun 19 05:44:03 2014
asctime(time.localtime())
輸出:Wed Oct 11 21:42:56 2017
當兩個方法都不傳入參數,返回的都爲當前日期和時間:如:
Wed Oct 11 21:45:42 2017
Wed Oct 11 21:45:42 2017date
-
mktime()
將元組形式的日期時間轉換爲秒的形式。必須有參數!如:
mktime(time.gmtime()) #time.gmtime()返回的爲元組形式的標準時間。
輸出:1507700832.0
關於datetime模塊,使用的時候建議僅使用當中的now()方法。如:方法
-
datetime.datetime.now()
輸出:2017-10-13 10:12:17.174169
-
timedelta()
timedelta 方法必須與其餘方法配合使用,不能單獨存在。參數有不一樣的形式。如:
datetime.datetime.now()+datetime.timedelta(3)
輸出:2017-10-16 10:12:17.174169 #表示今天向後推3天,也能夠爲負數,表示向前推幾天
-
此外還有另外的參數形式。如:
datetime.datetime.now()+datetime.timedelta(minutes=20)
輸出:2017-10-13 10:32:17.174169 #表示如今的20分鐘後
datetime.datetime.now()+datetime.timedelta(minutes=20,hours=2)
輸出:2017-10-13 12:32:17.174669 #小時和分鐘向後推