时间模块的使用
多线程补充
1.想要结束一个进程就是让它里面所有的线程都结束,进程才会结束
2.想要关闭一个子线程,就是想方设法让子线程中的任务结束(就是让run方法结束)
3.如果一个线程崩溃(发生异常),不会影响其他线程
time模块
主要包含处理年月日时分秒对应的时间(着重于时分秒)
1.获取当前时间
时间戳: 从格林威治时间(1970年1月1日0:0:0)到当前时间的时间差(单位s)
1. 存时间以时间戳的形式去存储可以节省内存空间(一个浮点数的内存是4/8个字节,存一个字符串一个字符占2个字节)
2. 自带对时间加密的功能(加密更方便)
print(time.time(), type(time.time()))
print(time.time()/3600/24/365)
2.将时间戳转换成struct_time / 将struct_time转换成时间戳
-
localtime(seconds)
参数seconds:
a.不传参,就是将当前时间对应的时间戳转换成struct_time
b.传参,就是将指定的时间搓转换成struct_time -
mktime(结构时间)
time1 = time.localtime()
print(time1)
print(time1.tm_year)
strc = time.strptime('2018-12-31 23:50:40', '%Y-%m-%d %H:%M:%S')
timec = time.mktime(strc)
timec += 3600
print(time.localtime(timec))
其中:
tm_year: 年
tm_mon: 月
tm_mday: 日
tm_hour: 时
tm_min: 分
tm_sec: 秒
tm:wday: 星期(0-6 --> 周一 - 周天)
tm_yday: 当前天数是当前年份的第几天
tm_isdst: 是否是夏令时
3.时间格式的转换
- strftime(时间格式,时间)
将时间以指定的格式转换成字符串
time1 = time.strftime('%Y-%m-%d %H:%M:%S', time1)
print(time1)
- strptime(需要转换的字符串,时间格式)
将时间字符串转换成相应的struct_time
struct_time = time.strptime('Todayis2018year8month9day', 'Todayis%Yyear%mmonth%dday')
print(struct_time)
4.延迟
time.sleep(5)
datetime模块
专门处理年月日
1.日期类 date --> 只能表示年月日
- 最小日期
print(datetime.date.min, type(datetime.date.min))
- 最大日期
print(datetime.date.max, type(datetime.date.max))
- 最小单位
print(datetime.date.resolution)
2.类方法
- 获取当前日期
today = datetime.date.today()
print(today)
- 将时间戳转换为日期
today2 = datetime.date.fromtimestamp(5434553.3242)
print(today2)
3.对象属性
print(today.year, today.month, today.day)
4.对象方法
- 1.获取指定日期对应的星期数
print(today.isoweekday())
- 2.将指定日期对象转换为指定格式的字符串日期
print(today.strftime('%Y/%m/%d %w'))
- 3.将日期转换成struct_time
print(today.timetuple())
- 4.创建日期对象
data1 = datetime.date(2017, 4, 30)
print(data1)
网友评论