python时间模块操作
时间戳概念:
是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。
Import time #导入时间模块
time.time() #获取当前时间戳
time.sleep(10) #程序沉睡10秒钟
time.strftime('%Y-%m-%d %H:%M:%S')获取当前时间
time.gmtime() #默认取的是标准时区的时间
time.localtime() #取到的是当前时区的时间
datetime.datetime.today() #获取当前时间,精确到秒
datetime.date.today() #精确到天
时间戳转成时间元组
time1 = time.time()
tuple = time.gmtime(time1) # UTC时间
print(tuple)
tuple1 = time.localtime(time1) # UTC + 8 时间
print(tuple1)
时间元组转成格式化好时间
tuple = time.localtime()
strTime = time.strftime("%Y-%m-%d %H:%M:%S",tuple)
print(strTime)
strTime1 = time.strftime("%Y{y}%m{m}%d{d} %H{h}%M{m1}%S{s}",tuple).format(y="年",m="月",d="日",h="时",m1="分",s="秒")
print(strTime1)
格式化好的时间转成时间元组
tp = time.strptime('2018-4-21','%Y-%m-%d')
时间元组在转成时间戳
print(time.mktime(tp))
# 输入一个时间戳转成格式化好的时间
# 方法如下
def timestamp_to_fomat(timestamp=None,format='%Y-%m-%d %H:%M:%S'):
#1、默认返回当前格式化好的时间
#2、传入时间戳的话,把时间戳转换成格式化好的时间,返回
if timestamp:
time_tuple = time.localtime(timestamp)
res = time.strftime(format,time_tuple)
else:
res = time.strftime(format) #默认取当前时间
return res
# 调用该方法
res=timestamp_to_fomat(timestamp=14445000)
print(res)
# 输入时间转成时间戳
def strToTimestamp(str=None,format='%Y%m%d%H%M%S'):
# 20180421165643
#默认返回当前时间戳
if str: #如果传了时间的话
tp = time.strptime(str,format) #格式化好的时间,转成时间元组
res = time.mktime(tp) #再转成时间戳
else:
res = time.time() #默认取当前的时间戳
return int(res)
# 调用该方法
res=strToTimestamp(str='20180120152059')
print(res)
1天后的时间,10周后的时间
res = datetime.datetime.today()+datetime.timedelta(days=1,minutes=5,seconds=5,weeks=10)
print(res.strftime('%Y-%m-%d'))