day25-总结

时间模块的使用

多线程补充

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)

你可能感兴趣的:(day25-总结)