python 時間模組time

2021-10-06 09:23:53 字數 4549 閱讀 6337

python中有關時間的內容,時間主要是3種形式:格式化的時間、時間元組、時間戳,格式化的時間轉為時間戳,必須要先轉為時間元組,通過時間元組再轉化為時間戳,同樣的時間戳轉化為格式化的時間時,也需要先轉為時間元組後,才能再轉化為格式化的時間

1、time.time()

以時間戳的形式獲取當前時間

2、time.localtime()

以時間元組的形式獲取當前時間

將時間戳轉化為時間元組

3、time.mktime()

將時間元組轉化為時間戳

4、time.strftime()

將時間元組按指定的格式輸出時間字串

當不傳時間元組時,按指定格式獲取當前時間

5、time.strptime()

將格式化的時間字串轉化為時間元組

實現方法:

1、格式化時間轉為時間戳

2、時間戳按指定的格式輸出時間字串

3、計算某時間點前的時間

4、計算某時間點後的時間

import time

from setting.config import logger

class

mytimes()

:def

str_to_timestamp

(self,

str=

none

,format

='%y-%m-%d %h:%m:%s'):

''' 格式化的時間轉時間戳

:param str: 格式化的時間,不傳的時候取當前時間

:param format: 時間格式化的格式,不傳的時候,取預設的格式

:return: 返回時間戳

'''ifstr

: time_tuple = time.strptime(

str,

format

) result = time.mktime(time_tuple)

else

: result = time.time(

)return

int(result)

deftimestamp_to_str

(self,timezone=

none

,format

='%y-%m-%d %h:%m:%s'):

''' 時間戳按照指定的格式輸出

:param timezone: 時間戳,不傳的時候,預設取當前時間

:param format: 時間格式化的格式,不傳的時候,取預設的格式

:return: 返回的是指定格式的時間

'''if timezone:

time_tuple = time.localtime(timezone)

result = time.strftime(

format

, time_tuple)

else

: result = time.strftime(

format

)return result

defbefore_time

(self,start_time =

none

, unit =

'd', num =1,

format

="%y-%m-%d %h:%m:%s"):

''' 該函式主要用於計算之前的時間

:param start_time:需要計算的參考時間

:param unit:需要計算的單位,w:按周算 d:按天算 h:按小時算 m:按分鐘算 s:按秒算

:param num:計算相對時間的量值,兩周還是三周

:param format:指定輸入和輸出的時間格式,有預設的格式

:return:返回計算好的時間

'''ifnot start_time:

start_time = time.localtime(

)# 以時間元組的形式獲取當前時間

# start_time = time.time() # 以時間戳的形式獲取當前時間

logger.debug(start_time)

return self.count_time(start_time,

'before'

,unit=unit,num=num,

format

=format

)def

after_time

(self,start_time =

none

, unit =

'd', num =1,

format

="%y-%m-%d %h:%m:%s"):

''' 該函式主要用於計算之後的時間

:param start_time:需要計算的參考時間

:param unit:需要計算的單位,w:按周算 d:按天算 h:按小時算 m:按分鐘算 s:按秒算

:param num:計算相對時間的量值,兩周還是三周

:param format:指定輸入和輸出的時間格式,有預設的格式

:return:返回計算好的時間

'''ifnot start_time:

start_time = time.localtime(

)return self.count_time(start_time,

'after'

,unit=unit,num=num,

format

=format

)def

count_time

(self,start_time,tag,unit =

'd', num =1,

format

="%y-%m-%d %h:%m:%s"):

''' 主要是根據tag來判斷是加還是減

'''timetemp =

int(time.mktime(start_time)

)# 將時間元組轉為時間戳

if tag ==

'before'

: t = self.count_timetemp(timetemp,

'+', unit=unit, num=num)

else

: t = self.count_timetemp(timetemp,

'-', unit=unit, num=num)

timearry = time.localtime(t)

# 將時間戳轉為時間元組

result = time.strftime(

format

,timearry)

# 將時間元組按照指定格式輸出

return result

defcount_timetemp

(self, timetemp, symbol, unit=

'd', num=1)

:'''

實際的計算過程

'''if unit ==

'y':

t =eval

('%d %s %d*365*24*60*60'

%(timetemp,symbol, num)

)elif unit ==

'm':

t =eval

('%d %s %d*30*24*60*60'

%(timetemp, symbol, num)

)elif unit ==

'w':

t =eval

('%d %s %d*7*24*60*60'

%(timetemp, symbol, num)

)elif unit ==

'd':

t =eval

('%d %s %d*24*60*60'

%(timetemp, symbol, num)

)elif unit ==

'h':

t =eval

('%d %s %d*60*60'

%(timetemp, symbol, num)

)elif unit ==

'm':

t =eval

('%d %s %d*60'

%(timetemp, symbol, num)

)elif unit ==

's':

t =eval

('%d %s %d*1'

%(timetemp, symbol, num)

)else

: logger.info(

'您輸入的計算單位%s不存在'

%unit)

return t

if __name__ ==

'__main__'

: s = mytimes(

)print

(s.before_time(num =

6,unit=

'y')

)# print(s.get_current_time())

python時間模組 time

1.python中的時間的表示方法有以下幾種 1 時間戳,通常來說,時間戳表示的是從1970年1月1日00 00 00開始按秒計算的到當前時間的差。time.time 返回的就是時間戳格式。2 結構化時間 struct time 就是標準的咱們指的 9個時間元素 年 月 日 時 分 秒 一年中的第幾...

python時間time模組介紹

先看幾個概念 時間戳 從1970年1月1日00 00 00開始按秒計算的偏移量。舉個例子,現在是2017年6月11的下午16 54 32,那麼print time.time 輸出的值是1497171320.99就代表現在的時間戳。元組 struct time struct time元組共有9個元素。...

python時間time模組介紹

先看幾個概念 時間戳 從1970年1月1日00 00 00開始按秒計算的偏移量。舉個例子,現在是2017年6月11的下午16 54 32,那麼print time.time 輸出的值是1497171320.99就代表現在的時間戳。元組 struct time struct time元組共有9個元素。...