Python時間日期處理:獲取當前時間日期,可精確到微秒,時間日期,字符串與時間戳相互轉換,簡單實用

獲取當前時間日期,精確到微秒,時間日期字符串與時間戳相互轉換,字符串轉時間戳

在python裏處理時間總要用到 timedatetime 這兩個庫,有時候就很麻煩,於是我就整合了一下這兩個東西,方便使用。

我這幾個函數都支持精確到微秒的轉換,應該還算比較方便的了

開箱即用,先來看看效果

使用 / 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 ""}')
    

結束

如果感覺好用給我點個贊吧)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章