Python 中的time模块(时间操作相关)

Python 中的time模块(时间操作相关)

(1) 时间的格式
  1. 字符串数据类型(格式化时间), 2020/3/14或者 2020-3-14等
  2. 浮点型数据类型(时间戳时间), 1584172135.9440901,单位是秒,从1970/1/1,0:0:0(伦敦时间)开始增加
  3. 结构化时间(中间状态), tm_year=2020, tm_mon=3, tm_mday=14, tm_hour=15, tm_min=57, tm_sec=36,
    tm_wday=5, tm_yday=74, tm_isdst=0)
(2) 获取时间相关函数
  1. time.time(), 获取时间戳时间(timestamp)
  2. time.strftime(’%Y-%m-%d’), 获取格式话时间,关于其余操作见搜狗百科:strftime函数
  3. time.localtime(), 获取本地结构化时间,struct_time
  4. time.gmtime(), 获取伦敦结构化时间
#1. time.time()
import time
print(time.time())
#输出结果:1584173128.970888

#2. time.strftime('%Y-%m-%d')
import time
print(time.strftime('%Y-%m-%d-%H-%M-%S'))
#常用:Y(Year)年份,m(month)月d(day)日,H(Hour)时,M(Minutes)分,S(Seconds)秒

#输出结果:2020-03-14-16-07-48

#3. time.localtime()
import time
print(time.localtime())#输出类型为元组
#输出结果:ime.struct_time(tm_year=2020, tm_mon=3, tm_mday=14, tm_hour=16,
#tm_min=20, tm_sec=39, tm_wday=5(一周的第几天(0-6)), tm_yday=74(一年的第几天), tm_isdst=0(是否夏令时))

#4. time.gmtime()
import time
print(time.gmtime())
#输出结果:time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=2, 
# tm_sec=1, tm_wday=3, tm_yday=1, tm_isdst=0)
(3) 格式转换相关操作
  1. 时间戳时间转换成结构化时间timestamp–>struct_time
import time
timestamp=16000000000
#第一种,转换本地结构化时间
print(time.localtime(timestamp))
#第二种,转换成伦敦结构化时间
print(time.gmtime(timestamp))
  1. 结构化时间转换成字符串时间struct_time–>string_time
import time
timestamp=16000000000
struct_time=time.localtime(timestamp)
ret=time.strftime('%Y-%m-%d',struct_time)#前面格式,后面传入结构化时间
print(ret)
#输出结果:2477-01-07
  1. 字符串时间转换成结构化时间string_time–>struct_time
import time
string_time='2020/3/14'
struct_time=time.strptime(string_time,'%Y/%m/%d')#字符串时间转结构化时间,前字符串时间,后格式
print(struct_time)
  1. 结构化时间转换成时间戳时间struct_time–>timestamp
import time
string_time='2020/3/14'
struct_time=time.strptime(string_time,'%Y/%m/%d')
res=time.mktime(struct_time)#结构化时间转时间戳时间
print(res)
#输出结果:1584115200.0
(4) 程序运行相关函数
  1. time.sleep(N), 程序走到这,会等N秒后再执行
  2. time.clock(), 获取当前程序运行到此处的位置,格式为时间戳格式
#获取程序运行时间
import time
start=time.clock()#获取此处时间戳时间
time.sleep(2)#运行此处时间停留两秒
print('hello world')
end=time.clock()#获取结束时时间戳时间
print(format(end-start,'.5f'))#打印程序运行时间
#输出结果:hello world,2.00345
(5) time 模块的相关应用
  1. 查看时间戳时间100000000表示的时间,年-月-日:时-分-秒
import time
timestamp=100000000
struct_time=time.localtime(timestamp)
print(time.strftime('%F:%X',struct_time))#%F获取年-月-日,%X获取时:分:秒
#输出结果:1973-03-03:17:46:40
  1. 将2020/3/14转换成时间戳时间
import time
string_time='2020/3/14'
struct_time=time.strptime(string_time,'%Y/%m/%d')
print(time.mktime(struct_time))#mktime
#输出结果:1584115200.0
  1. 将当前时间当月一号的时间戳时间取出来(函数)
import time
def main():
    struct_time=time.localtime()
    struct_time=time.strptime('%s-%s-1'%(struct_time.tm_year,struct_time.tm_mon),'%Y-%m-%d')
    #'%s-%s-1'%(struct_time.tm_year,struct_time.tm_mon)拼接字符串时间
    print(time.mktime(struct_time))#将拼接后的时间以时间戳时间输出
main()

  1. 计算时间差,一个年-月-日 时:分:秒时间到目前的时间差
import time
def main(Time):
    time1=time.time()
    S_Time=time.strptime(Time,'%Y-%m-%d %H:%M:%S')
    time2=time.mktime(S_Time)     
    res=abs(time1-time2)
    r_time=time.gmtime(res)
    ret=(r_time.tm_year-1970,r_time.tm_mon-1,r_time.tm_mday-1,\
         r_time.tm_hour,r_time.tm_min,r_time.tm_sec)
    if time1>time2:
        print('你输入的时间已经过去了:%s年%s月%s日 %s时:%s分:%s秒'%ret)
    if time1<time2:
        print('距你输入的时间还有:%s年%s月%s日 %s时:%s分:%s秒'%ret)
Time='2018-4-26 0:0:0'
main(Time)
Time='2020-3-17 0:0:0'
main(Time)
#输出结果
#你输入的时间已经过去了:1年10月19日 18时:11分:20秒
#距你输入的时间还有:0年0月2日 5时:48分:39秒
发布了66 篇原创文章 · 获赞 7 · 访问量 2379

猜你喜欢

转载自blog.csdn.net/qq_45894553/article/details/104861636
今日推荐