time模块
先说几个定义:
-
- UTC(Coordinated Universal Time)即格林威治天文时间,为世界标准时间。中国北京为UTC+8。
-
DST(Daylight Saving Time)即夏令时。
-
时间戳(timestamp)的方式:通常来说,时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。我们运行“type(time.time())”,返回的是float类型。UTC(Coordinated Universal Time)即格林威治天文时间,为世界标准时间。中国北京为UTC+8。
- 元组(struct_time)方式:struct_time元组共有9个元素,返回struct_time的函数主要有gmtime
元组中的参数如下:
序号 属性 值 0 tm_year 2008 1 tm_mon 1 到 12 2 tm_mday 1 到 31 3 tm_hour 0 到 23 4 tm_min 0 到 59 5 tm_sec 0 到 61 (60或61 是闰秒) 6 tm_wday 0到6 (0是周一) 7 tm_yday 一年中的第几天,1 到 366 8 tm_isdst 是否为夏令时,值有:1(夏令时)、0(不是夏令时)、-1(未知),默认 -1
time模块常用方法:
import time # 将一个时间戳转换为当前时区的struct_time print(time.localtime()) # 结果是:time.struct_time(tm_year=2018, tm_mon=8, tm_mday=20, tm_hour=23, tm_min=10, tm_sec=22, tm_wday=0, tm_yday=232, tm_isdst=0) # 与localtime方法相似,不过转成UTC时区 print(time.gmtime()) # 结果是:time.struct_time(tm_year=2018, tm_mon=8, tm_mday=20, tm_hour=15, tm_min=12, tm_sec=12, tm_wday=0, tm_yday=232, tm_isdst=0) # 返回当前时间戳 print(time.time()) # 结果是:1534777932.6671607 # 线程推迟指定的时间运行,单位为秒 time.sleep(1) # 把一个表示时间的元组传入,默认是传入time.localtime() print(time.asctime()) # 结果是:Mon Aug 20 23:16:49 2018 # 把一个时间戳转换成时间,默认是传入time.time() print(time.ctime()) # 结果是:Mon Aug 20 23:17:42 2018 # time.strftime(fmt[,tupletime]) 接收以时间元组,并返回以可读字符串表示的当地时间,格式由fmt决定。 print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())) # 结果是:2018-08-20 23:28:21
字符串转时间格式对应关系
%y 两位数的年份表示(00-99) %Y 四位数的年份表示(000-9999) %m 月份(01-12) %d 月内中的一天(0-31) %H 24小时制小时数(0-23) %I 12小时制小时数(01-12) %M 分钟数(00=59) %S 秒(00-59) %a 本地简化星期名称 %A 本地完整星期名称 %b 本地简化的月份名称 %B 本地完整的月份名称 %c 本地相应的日期表示和时间表示 %j 年内的一天(001-366) %p 本地A.M.或P.M.的等价符 %U 一年中的星期数(00-53)星期天为星期的开始 %w 星期(0-6),星期天为星期的开始 %W 一年中的星期数(00-53)星期一为星期的开始 %x 本地相应的日期表示 %X 本地相应的时间表示 %Z 当前时区的名称 %% %号本身
datetime模块
datetime模块定义了下面几个类:
-
-
- datetime.date:表示日期的类。常用的属性有year,month,day;
- datetime.time:表示时间的类。常用的属性有hour,minute,second,microsecond;
- datetime.datetime:表示日期时间;
- datetime.timedelta:表示时间间隔,即两个时间点之间的长度;
- datetime.tzinfo:与时区有关的相关信息。
- datetime.date:表示日期的类。常用的属性有year,month,day;
-
常用方法:
import datetime # 返回当前的tatetime日期类型 d = datetime.datetime.now() print(d) # 结果是:2018-08-20 23:42:40.007642 print(d.today()) # 结果是:2018-08-20 23:42:40.007642 print(d.year) # 结果是:2018 print(d.timetuple()) # 结果是:time.struct_time(tm_year=2018, tm_mon=8, tm_mday=20, tm_hour=23, tm_min=44, tm_sec=18, tm_wday=0, tm_yday=232, tm_isdst=-1)