time&localtime

1、簡述

咱們在寫代碼的過程常常遇到時間模塊,若是咱們之後須要根據時間去篩選信息的話,那用戶會更大,因此今天就來說講時間的兩大模塊:time & datetime函數

2、time模塊

一、time.process_time()spa

功能:測量處理器的運算時間,可是不包括sleep時間,由於sleep只是把你的程序掛起,不太穩定。操作系統

>>> import time
>>> time.process_time()
0.8736056

二、time.altzone()unix

功能:返回與utc的時間的時間差,以秒計算code

>>> import time
>>> time.altzone
-32400
>>> time.altzone/3600
-9.0 

 注:感受有點不太準確,爲何是-9時呢?無解,先忘記它吧!對象

三、time.asctime()blog

功能:返回時間格式:'Thu Mar 30 16:47:39 2017'(星期 月 日  時間   年)字符串

>>> import time
>>> time.asctime()
'Thu Mar 30 16:47:39 2017'   #返回 星期 月 日 時間  年

四、time.localtime()class

功能:返回本地時間的struct _time的格式的對象,也能夠把時間戳轉換成成struct _time的格式的對象import

>>> import time
>>> t = time.localtime()  #返回本地時間的對象,經過對象獲取對應的年月日等信息
>>> t
time.struct_time(tm_year=2017, tm_mon=3, tm_mday=30, tm_hour=16, tm_min=52, tm_sec=10, tm_wday=3, tm_yday=89, tm_isdst=0)
>>> t.tm_hour   # 獲取小時數
16

五、time.time()

功能:返回當前時間的時間戳(1970年紀元後通過的浮點秒數)

>>> import time
#返回當前時間的時間戳
>>> time.time()  
1490864724.061428
#跟localtime()結合起來返回當前時間對象
>>> time.localtime(time.time())  
time.struct_time(tm_year=2017, tm_mon=3, tm_mday=30, tm_hour=17, tm_min=5, tm_sec=38, tm_wday=3, tm_yday=89, tm_isdst=0)
# 給當前時間加上3個小時,注意了,localtime中只能介紹秒級別的,因此是3600*3表示3個小時
>>> time.localtime(time.time() + 3600*3)
time.struct_time(tm_year=2017, tm_mon=3, tm_mday=30, tm_hour=20, tm_min=5, tm_sec=53, tm_wday=3, tm_yday=89, tm_isdst=0)
#跟asctime結合起來用 生成當前時間格式
>>> time.asctime( time.localtime( time.time() ) )
'Thu Mar 30 17:06:26 2017'

注:爲啥是1970年呢?由於1970年1月1日被當作unix操做系統的誕生元年。

6.time.gmtime()

功能:返回當前utc時間(倫敦時間)

>>> import time
>>> time.gmtime()   #返回utc的時間struct time 格式
time.struct_time(tm_year=2017, tm_mon=3, tm_mday=30, tm_hour=9, tm_min=25, tm_sec=13, tm_wday=3, tm_yday=89, tm_isdst=0)
>>> time.asctime(time.gmtime()) 
'Thu Mar 30 09:26:14 2017'    #倫敦時間
>>> time.asctime(time.localtime())
'Thu Mar 30 17:26:14 2017'    #北京時間,二者正好相差8個小時

注:沒啥用處?知道就行。

七、time.strptime()

功能:把時間格式的字符串轉成struct_time格式的時間對象

>>> import time
>>> time.strptime("2017-03-30 17:30","%Y-%m-%d %H:%M")
#轉換爲struct_time格式的時間對象
time.struct_time(tm_year=2017, tm_mon=3, tm_mday=30, tm_hour=17, tm_min=30, tm_sec=0, tm_wday=3, tm_yday=89, tm_isdst=-1)

八、time.mktime()

功能:把struct_time時間對象轉成時間戳

>>> import time
#生成struct_time時間對象
>>> t = time.strptime("2017-03-30 17:30","%Y-%m-%d %H:%M")
#時間對象轉成時間戳
>>> t2_stamp = time.mktime(t)
>>> t2_stamp
1490866200.0

九、time.strftime()

功能:struct_time時間對象轉換成時間字符串

>>> import time
#生成struct_time時間對象
>>> t = time.strptime("2017-03-30 17:30","%Y-%m-%d %H:%M")
#把時間對象轉換成時間格式的字符串
>>> m = time.strftime("%Y-%m-%d-%H-%M.log",t)
>>> m
'2017-03-30-17-30.log'
#不傳入時間對象,默認是當前時間
>>> m = time.strftime("%Y-%m-%d-%H-%M.log")
>>> m
'2017-03-30-17-56.log'

 固然,中間若是須要用時間戳轉換的話,你還能夠這樣,代碼以下:

>>> import time
#生成struct_time時間對象
>>> t = time.strptime("2017-03-30 17:30","%Y-%m-%d %H:%M")
#把時間對象轉成時間戳
>>> t2_stamp = time.mktime(t)
#再經過localtime函數把時間戳轉成struct_time時間對象
>>> t3 = time.localtime(t2_stamp)
#把時間對象轉換成時間格式的字符串
>>> m = time.strftime("%Y-%m-%d-%H-%M.log",t)
>>> m
'2017-03-30-17-30.log'

3、時間格式轉換

一、轉換表格

二、時間格式轉換關係圖

4、datetime模塊

一、datetime.datetime.now()

功能:返回當前時間,格式如:2016-08-19 12:47:03.941925

>>> import datetime
>>> print(datetime.datetime.now())
2017-03-31 10:22:09.819373

 二、datetime.date.fromtimestamp()

 功能:時間戳轉換爲日期格式

>>> import datetime,time
>>> t = datetime.date.fromtimestamp(time.time())
>>> print(t)  #把當天日期的時間戳轉換爲當天日期
2017-03-31

 三、datetime.timedelta()

功能:對某個時間的加減

>>> import datetime
#當前時間加3天
>>> t1 = datetime.datetime.now()  + datetime.timedelta(days=3)
>>> print(t1)
2017-04-03 10:42:50.714910
#當前時間減3天
>>> t1 = datetime.datetime.now()  - datetime.timedelta(days=3)
>>> print(t1)
2017-03-28 10:43:17.260111
#當前時間減3天
>>> t1 = datetime.datetime.now()  + datetime.timedelta(days=-3)
>>> print(t1)
2017-03-28 10:43:35.758742
#當前時間加3個小時
>>> t1 = datetime.datetime.now()  + datetime.timedelta(hours=3)
>>> print(t1)
2017-03-31 13:44:24.805354
#當前時間加30分鐘
>>> t1 = datetime.datetime.now()  + datetime.timedelta(minutes=30)
>>> print(t1)
2017-03-31 11:14:55.990195

四、時間替換

>>> import datetime
>>> c_time = datetime.datetime.now()
#當前時間輸出
>>> print(c_time)
2017-03-31 10:47:22.682289
#時間替換
>>> update_c_time = c_time.replace(minute=3,hour=2)
#替換後的時間輸出
>>> print(update_c_time)
2017-03-31 02:03:22.682289
本站公眾號
   歡迎關注本站公眾號,獲取更多信息