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 |
1.time時間戳
#1 time()時間戳
import time print(time.time()) '''結果: 1515580697.744986 '''
2.strftime時間字符串
#2 strftune時間字符串
print(time.strftime('%Y-%m-%d')) '''結果: 2018-01-10 '''
print(time.strftime('%Y-%m-%d %H:%M:%S')) ''' 2018-01-10 18:59:03 '''
3.localtime時間元組
#3 localtime時間元組
print(time.localtime()) '''結果: time.struct_time(tm_year=2018, tm_mon=1, tm_mday=10, tm_hour=19, tm_min=28, tm_sec=10, tm_wday=2, tm_yday=10, tm_isdst=0) '''
4.幾種格式之間的轉換
(1)時間戳 -> 結構化時間
#(1)時間戳 -> 結構化時間 #time.gmtime() #UTC時間,與英國倫敦當地時間一致 #time.localtime() #當地時間
print(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) '''
print(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) '''
#兩個時間比較發現本地時間比UTC時間快8個小時
(2)結構化時間 -> 時間戳
#(2)結構化時間 -> 時間戳
time_tuple = time.localtime(1500000000) print(time.mktime(time_tuple)) #mktime函數接收struct_time對象作為參數,返回用秒數來表示時間的浮點數。
'''結果: 1500000000.0 '''
(3)結構化時間 -> 字符串時間
#(3)結構化時間 -> 字符串時間
print(time.strftime('%Y-%m-%d',time.localtime(time.time()))) '''結果: 2018-01-10 '''
(4)字符串時間 -> 結構化時間
#(4)字符串時間 -> 結構化時間 #time.strptime(時間字符串,字符串對應格式)
print(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) '''
(5)結構化時間 -> %a %b %d %H:%M:%S %Y串
#(5)結構化時間 -> %a %b %d %H:%M:%S %Y串 #time.asctime(結構化時間) 如果不傳參數,直接返回當前時間的格式化串
print(time.asctime(time.localtime(1500000000))) '''結果: Fri Jul 14 10:40:00 2017 '''
print(time.asctime()) '''結果: Wed Jan 10 19:59:16 2018 '''
(6)%a %d %d %H:%M:%S %Y串 --> 結構化時間
#time.ctime(時間戳) 如果不傳參數,直接返回當前時間的格式化串
print(time.ctime()) '''結果: Wed Jan 10 20:01:41 2018 '''
print(time.ctime(1500000000)) '''結果: Fri Jul 14 10:40:00 2017 '''