获取当前时间日期,精确到微秒,时间日期字符串与时间戳相互转换,字符串转时间戳
在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 ""}')
结束
如果感觉好用给我点个赞吧)