Day 4-2 time & datetime模块

时间:2020-11-28 13:46:55

time模块.

 import time
time.time()
#输出: 1523195163.140625
time.localtime() # 获取的是操作系统的时间,可以添加一个时间戳参数
# 输出: 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) a = time.localtime() # 可以把这个时间赋给一个变量,通过变量获取其他的属性
print('%s-%s-%s'%(a.tm_year,a.tm_mon,a.tm_mday))
#输出: 2018-4-8
time.gmtime() # 获取格林威治时间,可以添加一个时间戳参数
# 输出: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) (time.mktime(a)) # 把上面的a转换成一个时间戳.
#输出:1523196109.0
time.sleep(4) #程序延时4秒
(time.asctime()) # 把一个表示时间的元组或者struct_time表示为这种形式:'Sun Oct 1 12:04:38 2017'。
#输出:Sun Apr 8 22:04:14 2018
time.ctime([secs]) #:把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。如果参数未给或者为None的时候,将会默认time.time()为参数。它的作用相当于time.asctime(time.localtime(secs))。 time.strftime("%Y-%m-%d %X",time.localtime()) #把一个时间转换成指定的格式.
#输出:2018-04-08 22:09:21 #时间格式常用的.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()取到的是格林威治的时间.

Day 4-2 time & datetime模块

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-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

时间的运算:

 t = datetime.timedelta(2)   # 默认填写是天数.可以是hours,minutes,seconds
t1 = datetime.datetime.now() -t # 当前减去2天
print(t1) # 2018-04-06 22:47:12.359375

替换时间:

 d= datetime.datetime.now()
d1 = d.replace(year=2008,month=10,day=1,hour=10,minute=12,second=33,microsecond=8888)
print(d1) # 2008-10-01 10:12:33.008888