標籤:小結 div str 分享圖片 完整 日期 ring mkt 時間模組
和時間有關係的我們就要用到時間模組。在使用模組之前,應該首先匯入這個模組。
#常用方法1.time.sleep(secs)(線程)延遲指定的時間運行。單位為秒。2.time.time()擷取目前時間戳
表示時間的三種方式
在python中,我們通常有三種方式來表示時間:時間戳記、格式化時間元組(struct_time)、格式化時間字串。
(1)時間戳記(timestamp) :通常來說,時間戳記表示的是從1970年1月1日00:00:00開始按秒計算的位移量。我們運行“type(time.time())”,返回的是float類型。
(2)格式化的時間字串(Format String): ‘1999-12-06’
%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 當前時區的名稱%% %號本身
python中時間日期格式化符號
(3)元組(struct_time) :struct_time元組共有9個元素共九個元素:(年,月,日,時,分,秒,一年中第幾周,一年中第幾天等)
| 索引(Index) |
屬性(Attribute) |
值(Values) |
| 0 |
tm_year(年) |
比如2011 |
| 1 |
tm_mon(月) |
1 - 12 |
| 2 |
tm_mday(日) |
1 - 31 |
| 3 |
tm_hour(時) |
0 - 23 |
| 4 |
tm_min(分) |
0 - 59 |
| 5 |
tm_sec(秒) |
0 - 60 |
| 6 |
tm_wday(weekday) |
0 - 6(0表示周一) |
| 7 |
tm_yday(一年中的第幾天) |
1 - 366 |
| 8 |
tm_isdst(是否是夏令時) |
預設為0 |
首先,我們先匯入time模組,來認識一下python中表示時間的幾種格式:
#匯入時間模組>>>import time#時間戳記>>>time.time()1500875844.800804#時間字串>>>time.strftime("%Y-%m-%d %X")‘2017-07-24 13:54:37‘>>>time.strftime("%Y-%m-%d %H-%M-%S")‘2017-07-24 13-55-04‘#時間元組:localtime將一個時間戳記轉換為當前時區的struct_timetime.localtime()time.struct_time(tm_year=2017, tm_mon=7, tm_mday=24, tm_hour=13, tm_min=59, tm_sec=37, tm_wday=0, tm_yday=205, tm_isdst=0)
小結:時間戳記是電腦能夠識別的時間;時間字串是人能夠看懂的時間;元組則是用來操作時間的
#時間戳記-->結構化時間#time.gmtime(時間戳記) #UTC時間,與英國倫敦當地時間一致#time.localtime(時間戳記) #當地時間。例如我們現在在北京執行這個方法:與UTC時間相差8小時,UTC時間+8小時 = 北京時間 >>>time.gmtime(1500000000)time.struct_time(tm_year=2017, tm_mon=7, tm_mday=14, tm_hour=2, tm_min=40, tm_sec=0, tm_wday=4, tm_yday=195, tm_isdst=0)>>>time.localtime(1500000000)time.struct_time(tm_year=2017, tm_mon=7, tm_mday=14, tm_hour=10, tm_min=40, tm_sec=0, tm_wday=4, tm_yday=195, tm_isdst=0)#結構化時間-->時間戳記 #time.mktime(結構化時間)>>>time_tuple = time.localtime(1500000000)>>>time.mktime(time_tuple)1500000000.0
#結構化時間-->字串時間#time.strftime("格式定義","結構化時間") 結構化時間參數若不傳,則現實目前時間>>>time.strftime("%Y-%m-%d %X")‘2017-07-24 14:55:36‘>>>time.strftime("%Y-%m-%d",time.localtime(1500000000))‘2017-07-14‘#字串時間-->結構化時間#time.strptime(時間字串,字串對應格式)>>>time.strptime("2017-03-16","%Y-%m-%d")time.struct_time(tm_year=2017, tm_mon=3, tm_mday=16, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=75, tm_isdst=-1)>>>time.strptime("07/24/2017","%m/%d/%Y")time.struct_time(tm_year=2017, tm_mon=7, tm_mday=24, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=205, tm_isdst=-1)
#結構化時間 --> %a %b %d %H:%M:%S %Y串#time.asctime(結構化時間) 如果不傳參數,直接返回目前時間的格式化串>>>time.asctime(time.localtime(1500000000))‘Fri Jul 14 10:40:00 2017‘>>>time.asctime()‘Mon Jul 24 15:18:33 2017‘#時間戳記 --> %a %d %d %H:%M:%S %Y串#time.ctime(時間戳記) 如果不傳參數,直接返回目前時間的格式化串>>>time.ctime()‘Mon Jul 24 15:19:07 2017‘>>>time.ctime(1500000000)‘Fri Jul 14 10:40:00 2017‘
import timetrue_time=time.mktime(time.strptime(‘2017-09-11 08:30:00‘,‘%Y-%m-%d %H:%M:%S‘))time_now=time.mktime(time.strptime(‘2017-09-12 11:00:00‘,‘%Y-%m-%d %H:%M:%S‘))dif_time=time_now-true_timestruct_time=time.gmtime(dif_time)print(‘過去了%d年%d月%d天%d小時%d分鐘%d秒‘%(struct_time.tm_year-1970,struct_time.tm_mon-1, struct_time.tm_mday-1,struct_time.tm_hour, struct_time.tm_min,struct_time.tm_sec))
Python time模組