python 之 time模塊、datetime模塊(打印進度條)

6.9 time 模塊

方法 含義 備註
time.time() 時間戳 1561013092.997079
time.strftime('%Y-%m-%d %H:%M:%S %p') 結構化時間struct_time 轉 格式化的字符串 2019-06-20 10:21:13 AM
time.strptime('2011-05-05 16:37:06', '%Y-%m-%d %X') 格式化的字符串 轉 結構化時間struct_time time.struct_time(tm_year=2011, tm_mon=5...)
time.localtime() 時間戳轉結構化時間struct_time 東八區時間 time.struct_time(tm_year=2019,tm_mon...)
time.gmtime() 時間戳轉結構化時間 UTC時區 time.struct_time(tm_year=2019,tm_mon=6...)
time.mktime(time.localtime() 將一個struct_time 轉 爲時間戳 15663646462642646
time.asctime(time.localtime() 將一個struct_time 轉 爲Linux顯示風格 Thu Jun 20 14:32:05 2019
time.ctime(12312312321) 將一個時間戳 轉 爲Linux顯示風格 Mon Feb 29 22:45:21 2360

一、時間戳(以秒計算)dom

import time
print(time.time())
start_time=time.time()
time.sleep(3)
stop_time=time.time()
print(stop_time-start_time)

二、格式化的字符串函數

print(time.strftime('%Y-%m-%d %H:%M:%S %p')) # 2019-06-20 10:21:13 AM
print(time.strftime('%Y-%m-%d %X %p')) # 2019-06-20 10:21:13 AM
strftime(format[, t]) #把一個表明時間的元組或者struct_time(如由time.localtime()和time.gmtime()返回)轉化爲格式化的時間字符串。若是t未指定,將傳入time.localtime()。若是元組中任何一個元素越界,ValueError的錯誤將會被拋出。
print(time.strftime("%Y-%m-%d %X", time.localtime())) #2019-06-20 00:49:56

三、struct_time()對象ui

print(time.localtime()) # 上海:東八區 time.struct_time(tm_year=2019,tm_mon=6,tm_mday=20,tm_hour=10,           tm_min=24, tm_sec=52, tm_wday=3, tm_yday=171, tm_isdst=0)
print(time.localtime(1111111111))   #將秒轉換成 time.struct_time()格式,不填默認當前時間
print(time.localtime().tm_year) # 2019
print(time.localtime().tm_mday) # 20
print(time.gmtime())   #UTC時區 差八個小時
#time.struct_time(tm_year=2019,tm_mon=6,tm_mday=20,tm_hour=2,tm_min=29,tm_sec=51,tm_wday=3,tm_yday=171,tm_isdst=0)

四、 mktime( t ) : 將一個struct_time轉化爲時間戳spa

print(time.mktime(time.localtime())) #15663646462642646

五、time.strptime()orm

print(time.strptime('2017/04/08','%Y/%m/%d'))
time.strptime(string[, format]) # 把一個格式化時間字符串轉化爲struct_time。實際上它和strftime()是逆操做。
print(time.strptime('2011-05-05 16:37:06', '%Y-%m-%d %X'))
#time.struct_time(tm_year=2011, tm_mon=5, tm_mday=5, tm_hour=16, tm_min=37, tm_sec=6,
# tm_wday=3, tm_yday=125, tm_isdst=-1)
#在這個函數中,format默認爲:"%a %b %d %H:%M:%S %Y"。

六、time.asctime()對象

print(time.asctime(time.localtime()))# Thu Jun 20 14:32:05 2019
asctime([t]) : 把一個表示時間的元組或者struct_time表示爲這種形式:'Sun Jun 20 23:21:05 1993'
print(time.asctime())#若是沒有參數,將會將time.localtime()做爲參數傳入。Sun Sep 11 00:43:43 2016

七、time.ctime()字符串

print(time.ctime(12312312321)) # Mon Feb 29 22:45:21 2360
#ctime([secs]) : 把一個時間戳(按秒計算的浮點數)轉化爲time.asctime()的形式。若是參數未給或者爲None的時候,將會默認time.time()爲參數。它的做用至關於time.asctime(time.localtime(secs))。
print(time.ctime())  # Sun Sep 11 00:46:38 2016
print(time.ctime(time.time()))  # Sun Sep 11 00:46:38 2016

6.10 datetime 模塊

方法 含義 備註
datetime.datetime.now()   2019-06-20 17:06:25.170859
datetime.datetime.now() + datetime.timedelta(days=3) 當前時間+3天 2019-06-23 17:14:24.660116
current_time.replace(year=1977) 更改當前時間 1977-06-20 17:18:11.543876
datetime.date.fromtimestamp(time.time()) 時間戳直接轉成日期格式 2019-08-19
import datetime
print(datetime.datetime.now() + datetime.timedelta(3)) #當前時間+3天
print(datetime.datetime.now() + datetime.timedelta(-3)) #當前時間-3天
print(datetime.datetime.now() + datetime.timedelta(hours=3)) #當前時間+3小時
print(datetime.datetime.now() + datetime.timedelta(minutes=30)) #當前時間+30分
current_time=datetime.datetime.now()
print(current_time.replace(year=1977))#1977-06-20 17:18:11.543876
print(datetime.date.fromtimestamp(1111111111))#2005-03-18
print(datetime.date.fromtimestamp(time.time()) )  # 時間戳直接轉成日期格式 2016-08-19

6.11 打印進度條

def progress(percent,width=50):
   if percent > 1:
       percent=1
   show_str=('[%%-%ds]' %width) %(int(width*percent) * '#')
   print('\r%s %d%%' %(show_str,int(100*percent)),end='')

import time
recv_size=0
total_size=8097
while recv_size < total_size:
   time.sleep(0.1)
   recv_size+=80
   percent=recv_size / total_size
   progress(percent)

6.12 random 模塊

相關文章
相關標籤/搜索