时间的类型
1、时间戳类型 1587102808.16 自1970-1-1 0:00:00 至今所经历的秒数
2、time.struct_time 类型 如下
time.struct_time(tm_year=2020, tm_mon=4, tm_mday=17, tm_hour=13, tm_min=53, tm_sec=28, tm_wday=4, tm_yday=108, tm_isdst=0) 年月日小时分钟秒 星期(0是周一,6是周七 )当年第N天,是否夏令时
3、datetime类
4、字符串格式 可按需求定制化 2020--04--17 05:55:49
其他的时间概念 世界标准时间 格林尼治时间 当地时间加上时差
一、 time 模块使用 结合以上概念 世界时间 当地时间 /时间戳类型 struce类型
时间戳类型 世界时间 本地时间
time.time() 得到 当前世界标准时间时间戳类型 格林尼治时间 两位小数 单位微秒
当前当地时间时间戳类型 得到当地时间struct类型再函数转为时间戳
time.localtime() 返回当地时间的struct类型 精确 秒
time.mktime(time.localtime()) 以为小时单始终是0 ,单位秒 struce转化成时间戳
struce类型 世界时间 本地时间
time.localtime() 返回当地时间的struct类型 精确 秒 没有入参的时候 把当前世界标准时间转换成当地时间 时间戳转化成struct类型
time.gmtime() 返回世界时间的strucet类型 精确 秒 当前世界标准时间转换成当地时间 时间戳转化成struct类型
小结:time模块 struct类型当地/世界时间 直接获取, 时间戳类型需要函数转化 time.mktime(struct_time_instance)
另 控制入参修改得到的时间 -日期和时间算法-: gmtime() 修改时间时间 修改时间戳 localtime 修改本地时间
time.localtime([secs]) 返回 指定时间戳(世界时间)的本地 struct类型
time.localtime(time.time() + n*3600) 世界时间 + n小时 本地时间也加 n小时 本地时间的时间戳不好获取
time.localtime(time.time() + n*3600) = time.localtime(time.mktime(time.localtime()) + n*3600)
time.altzone 返回utc时间差 夏令时时使用东八区反而差9个小时
time.clock() 返回当前进程所消耗的处理器运行时间秒数(不包括sleep时间)
time.asctime([t]) 得到如下形式时间Fri Aug 19 11:14:16 2016 入参是 tuple 或 strucet 未提供则取 localtime() 的当地时间struct类型 astruce --->字符串
time.ctime([secs]) 时间戳转化成 本地时间字符 世界时间转化成本地时间字符串 时间戳---->字符串
格式在转换
反转 时间字符串转struct time.strptime('2017-01-13 17:07', '%Y-%m-%d %H:%M')
struct_time对象实例转换成字符串 time.strftime(time_format_str, struct_time_instance)
time.localtime([secs]) 没有入参的时候 把当前世界标准时间转换成当地时间 struct_time 类型
图片来自 https://www.cnblogs.com/pal-duan/p/10568829.html
二、 datetime 模块使用
# 获取当前时间 print datetime.date.today() # print datetime.time.hour #不能获取当前时间 print datetime.datetime.today() print datetime.datetime.now() ### 有点复杂了 包括后面的timedelta类 整理可用的就可以 先这样
>>>
2020-04-17
2020-04-17 15:23:55.302000
2020-04-17 15:23:55.302000