Day 4-2 time & datetime模块
time模块.
1 import time 2 time.time() 3 #输出: 1523195163.140625 4 time.localtime() # 获取的是操作系统的时间,可以添加一个时间戳参数 5 # 输出: time.struct_time(tm_year=2018, tm_mon=4, tm_mday=8, tm_hour=21, tm_min=47, tm_sec=33, tm_wday=6, tm_yday=98, tm_isdst=0) 6 7 a = time.localtime() # 可以把这个时间赋给一个变量,通过变量获取其他的属性 8 print('%s-%s-%s'%(a.tm_year,a.tm_mon,a.tm_mday)) 9 #输出: 2018-4-8 10 time.gmtime() # 获取格林威治时间,可以添加一个时间戳参数 11 # 输出:time.struct_time(tm_year=2018, tm_mon=4, tm_mday=8, tm_hour=13, tm_min=58, tm_sec=46, tm_wday=6, tm_yday=98, tm_isdst=0) 12 13 (time.mktime(a)) # 把上面的a转换成一个时间戳. 14 #输出:1523196109.0 15 time.sleep(4) #程序延时4秒 16 (time.asctime()) # 把一个表示时间的元组或者struct_time表示为这种形式:'Sun Oct 1 12:04:38 2017'。 17 #输出:Sun Apr 8 22:04:14 2018 18 time.ctime([secs]) #:把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。如果参数未给或者为None的时候,将会默认time.time()为参数。它的作用相当于time.asctime(time.localtime(secs))。 19 20 time.strftime("%Y-%m-%d %X",time.localtime()) #把一个时间转换成指定的格式. 21 #输出:2018-04-08 22:09:21 22 23 #时间格式常用的.Ymd,HMS(亚麻跌,好嘛爽) 表示年月日,时分秒.
如何把一个时间格式的字符串转换成时间呢?
s = "2008-10-01 08:30:29" s1 = time.strptime(s,"%Y-%m-%d %X") # s1 = time.struct_time(tm_year=2008, tm_mon=10, tm_mday=1, tm_hour=8, tm_min=30, tm_sec=29, tm_wday=2, tm_yday=275, tm_isdst=-1) time.mktime(s1) #把一个时间元组转换成时间戳 #输出: 1222821029.0
time.gmtime()取到的是格林威治的时间.
datetime模块
a = datetime.datetime.now() #获取当前时间 print(a) # 2018-04-08 22:33:36.343750 a.timestamp() # a的时间戳 a.year # a的年份 a.today() # a的日期和时间 a.timetuple() # a的时间元组. #上面输出分别是: #1523198368.28125 #2018 #2018-04-08 22:39:28.281250 #time.struct_time(tm_year=2018, tm_mon=4, tm_mday=8, tm_hour=22, tm_min=39, tm_sec=28, tm_wday=6, tm_yday=98, tm_isdst=-1)
s = datetime.date.fromtimestamp(time.time()) #把一个时间戳转为datetime日期类型 print(s) # 2018-04-08
时间的运算:
1 t = datetime.timedelta(2) # 默认填写是天数.可以是hours,minutes,seconds 2 t1 = datetime.datetime.now() -t # 当前减去2天 3 print(t1) # 2018-04-06 22:47:12.359375
替换时间:
1 d= datetime.datetime.now() 2 d1 = d.replace(year=2008,month=10,day=1,hour=10,minute=12,second=33,microsecond=8888) 3 print(d1) # 2008-10-01 10:12:33.008888