python时间time模块介绍
先看幾個概念:
時間戳:從1970年1月1日00:00:00開始按秒計算的偏移量。舉個例子,現在是2017年6月11的下午16:54:32,那么print(time.time())輸出的值是1497171320.99就代表現在的時間戳。?
元組(struct_time):struct_time元組共有9個元素。gmtime(),localtime(),strptime()這三個函數會返回struct_time元組。下面的表格會列出struct_time的9個元素的具體情況
struct_time9個元素介紹
| tm_year | 年(例如2017) |
| tm_mon | 月(1-12) |
| tm_mday | 日(1-31) |
| tm_hour | 時(0-23) |
| tm_min | 分(0-59) |
| tm_sec | 秒(0-61)不太理解61 |
| tm_wday | 周幾(0-6)0是周日 |
| tm_yday | 一年中第幾天(1-366) |
| tm_isdst | 是否夏令時(默認-1) |
time模塊常用函數:
time.localtime([secs]):
將一個時間戳轉換為當前時區的struct_time。secs參數未提供,則以當前時間為準。
import time #不提供參數 t=time.localtime() print(t) 輸出結果如下: time.struct_time(tm_year=2017, tm_mon=6, tm_mday=11, tm_hour=17, tm_min=26, tm_sec=39, tm_wday=6, tm_yday=162, tm_isdst=0) import time #提供參數 t=time.localtime(1497173361.52) print(t) dt = time.strftime("%Y-%m-%d %H:%M:%S",t) print(dt)輸出結果如下: time.struct_time(tm_year=2017, tm_mon=6, tm_mday=11, tm_hour=17, tm_min=29, tm_sec=21, tm_wday=6, tm_yday=162, tm_isdst=0) 2017-06-11 17:29:21time.gmtime([secs]):
和localtime()方法類似,gmtime()方法是將一個時間戳轉換為UTC時區(0時區)的struct_time,UTC時區比中國時間少8小時。
import time t=time.gmtime() print(t) 輸出結果如下: time.struct_time(tm_year=2017, tm_mon=6, tm_mday=11, tm_hour=9, tm_min=33, tm_sec=17, tm_wday=6, tm_yday=162, tm_isdst=0)time.time():
返回當前時間的時間戳。
import time t=time.time() print(t) 輸出結果如下: 1497173705.06time.mktime(t)
將一個struct_time轉化為時間戳。
import time t1=time.localtime() t=time.mktime(t1) print(t) 輸出結果如下: 1497173819.0time.strftime(format[, t]):
把一個代表時間的元組(必須是9個元素值,而且值的范圍不能越界)或者struct_time(如由time.localtime()和time.gmtime()返回)轉化為格式化的時間字符串。如果t未指定,將傳入time.localtime()。
import time a=(2017,6,11,17,40,51,6,162,0) #%Y %m %d %H %M %S依次代表年,月,日,時,分,秒 c=time.strftime("%Y-%m-%d %H:%M:%S",a) print(c) 輸出結果如下: 2017-06-11 17:40:51time.strptime(string[, format])
把一個格式化時間字符串轉化為struct_time。它是strftime()函數的相反操作。
import time c=time.strptime("2017-6-11 17:51:30","%Y-%m-%d %H:%M:%S") print(c) 輸出結果如下: time.struct_time(tm_year=2017, tm_mon=6, tm_mday=11, tm_hour=17, tm_min=51, tm_sec=30, tm_wday=6, tm_yday=162, tm_isdst=-1)常用的輸出格式化時間
| %Y | 年(完整的年份) |
| %m | 月 |
| %d | 日 |
| %H | 時(24小時制) |
| %M | 分 |
| %S | 秒 |
| %y | 年的后兩位,例如今年是17年 |
| %I | 第幾小時(12小時制) |
| %j | 一年中第幾天 |
| %w | 星期幾(0-6,0代表星期日) |
| %x | 本地日期 |
| %X | 本地時間 |
| %c | 本地日期和時間 |
| %a | 本地簡化星期名 |
| %A | 本地完整星期名 |
| %b | 本地簡化月份名 |
| %B | 本地完整月份名 |
?
time.sleep()函數
如果需要程序暫停一下,就調用time.sleep()函數,并且傳入想要暫停的秒數。
datatime模塊
import?datetime 1.返回當前時間 >>> datetime.datetime.now() datetime.datetime(2017, 5, 9, 17, 7, 0, 514481)2.時間戳轉換成日期 >>> datetime.date.fromtimestamp(1178766678) datetime.date(2007, 5, 10)例如:對系統時間的提取:
time_unix = int(time.time()) # unix時間 print('time_unix:',time_unix) time_win = time.localtime(time_unix) # 轉換為win_time print('time_win:',time_win) time_now = time.strftime("%H:%M:%S", time_win) # 轉換成新的時間格式(18:59:20) print('time_now:',time_now) list_time = [] for line in time_now.split(':'):list_time.append(line) print('list_time:',list_time) str_time = ''.join(list_time) print('str_time',str_time)print('---------------------------------------------') win_time = datetime.datetime.now().strftime('%Y%m%d') unix_time = time.mktime(time.strptime(win_time, '%Y%m%d')) print('win_time:',win_time) print('unix_time:',unix_time)#輸出為: time_unix: 1536041566 time_win: time.struct_time(tm_year=2018, tm_mon=9, tm_mday=4, tm_hour=14, tm_min=12, tm_sec=46, tm_wday=1, tm_yday=247, tm_isdst=0) time_now: 14:12:46 list_time: ['14', '12', '46'] str_time 141246 --------------------------------------------- win_time: 20180904 unix_time: 1535990400.0?
總結
以上是生活随笔為你收集整理的python时间time模块介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Python】单线程异步多线程多进程实
- 下一篇: python json文件传输图片