1. 程式人生 > >[python標準庫]Time模塊

[python標準庫]Time模塊

time模塊 get ear href -c orm display http 元組

在python中,通常有以下幾種方式來表示時間:

  •  時間戳:表示的是從1970年1月1日00:00:00開始按秒計算的偏移量。
  • 格式化時間:struct_time元組共有9個元素共九個元素:(年,月,日,時,分,秒,一年中第幾周,一年中第幾天,夏令時)
  • 字符串時間:xxx年xxx月xxxx日
import time

s1 = time.localtime(23213123)  # 將時間戳轉化為結構化時間
s2 = time.mktime()  # 將結構化時間轉化為時間戳
s3 = time.strftime("%Y-%m-%d", time.localtime())  # 將結構化時間轉化為字符串
s4 = time.strptime("1900-03-12", "%Y-%m-%d") # 將字符串轉化為結構化時間

  關於時間戳,結構化時間,字符串時間轉化關系如下圖:

  技術分享

技術分享
#--------------------------按圖1轉換時間
# localtime([secs])
# 將一個時間戳轉換為當前時區的struct_time。secs參數未提供,則以當前時間為準。
time.localtime()
time.localtime(1473525444.037215)

# gmtime([secs]) 和localtime()方法類似,gmtime()方法是將一個時間戳轉換為UTC時區(0時區)的struct_time。
# mktime(t) : 將一個struct_time轉化為時間戳。 print(time.mktime(time.localtime()))#1473525749.0 # strftime(format[, t]) : 把一個代表時間的元組或者struct_time(如由time.localtime()和 # time.gmtime()返回)轉化為格式化的時間字符串。如果t未指定,將傳入time.localtime()。如果元組中任何一個 # 元素越界,ValueError的錯誤將會被拋出。 print(time.strftime("%Y-%m-%d %X", time.localtime()))#
2016-09-11 00:49:56 # 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"。
三者轉化關系

還有另一種時間轉化關系,但是這種方式把時間格式固定,不便於修改:

技術分享

#--------------------------按圖2轉換時間
# asctime([t]) : 把一個表示時間的元組或者struct_time表示為這種形式:‘Sun Jun 20 23:21:05 1993‘。
# 如果沒有參數,將會將time.localtime()作為參數傳入。
print(time.asctime())#Sun Sep 11 00:43:43 2016

# 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

關於時間模塊其他的方法,參考官方文檔:https://docs.python.org/3/library/time.html?highlight=time#time.struct_time

  

  

[python標準庫]Time模塊