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個元素。...