獲取當前時間日期,精確到微秒,時間日期字符串與時間戳相互轉換,字符串轉時間戳
在python裏處理時間總要用到 time 和 datetime 這兩個庫,有時候就很麻煩,於是我就整合了一下這兩個東西,方便使用。
我這幾個函數都支持精確到微秒的轉換,應該還算比較方便的了
開箱即用,先來看看效果
使用 / usage:
函數 getTime():獲取當前時間戳或者時間字符串,可精確到微秒,也可以只精確到秒,可手動選擇
In [1]: getTime()
Out[1]: 1581275175.1046052
In [1]: getTime(formatMS = False)
Out[1]: 1581275175
In [1]: getTime(1)
Out[1]: '2020-02-10 03:06:15.104605'
In [1]: getTime(1, False)
Out[1]: '2020-02-10 03:06:15'
函數 toTimeStamp():字符串 / 時間字符串轉時間戳,支持精確到秒或微秒,自動判斷
In [1]: toTimeStamp('2020-02-10 03:06:15.104605')
Out[1]: 1581275175.104605
In [1]: toTimeStamp('2020-02-10 03:06:15')
Out[1]: '1581275175'
函數 toTimeString():數字時間戳轉時間字符串,支持精確到秒或微秒,自動判斷
In [1]: toTimeString(1581275175)
Out[1]: '2020-02-10 03:06:15'
In [1]: toTimeString(1581275175.104605)
Out[1]: '2020-02-10 03:06:15.104605'
代碼 / code:
'''
時間小工具函數,方便進行時間處理
@author: PurePeace
@time: 2020年2月10日 02:42:55
'''
import time, datetime
# get now timeString or timeStamp
# 獲取當前時間字符串或時間戳(都可精確到微秒)
def getTime(needFormat=0, formatMS=True):
if needFormat != 0:
return datetime.datetime.now().strftime(f'%Y-%m-%d %H:%M:%S{r".%f" if formatMS else ""}')
else:
ft = time.time()
return (ft if formatMS else int(ft))
# timeString to timeStamp
# 時間字符串轉時間戳(有無微秒都可)
def toTimeStamp(timeString):
if '.' not in timeString: getMS=False
else: getMS=True
timeTuple = datetime.datetime.strptime(timeString, f'%Y-%m-%d %H:%M:%S{r".%f" if getMS else ""}')
ft = float(f'{str(int(time.mktime(timeTuple.timetuple())))}'+(f'.{timeTuple.microsecond}' if getMS else ''))
return (ft if getMS else int(ft))
# timeStamp to timeString
# 時間戳轉時間字符串
def toTimeString(timeStamp):
if type(timeStamp) == int: getMS=False
else: getMS=True
timeTuple = datetime.datetime.utcfromtimestamp(timeStamp+8*3600)
return timeTuple.strftime(f'%Y-%m-%d %H:%M:%S{r".%f" if getMS else ""}')
結束
如果感覺好用給我點個贊吧)