文章目录
time模块
import time
time.sleep([n])#休眠N 秒
time.time()#获取当前时间戳
在python中,表示时间通常有3种方式:
-
时间戳(timetamp):表示从1970.01.01 00:00:00 开始按秒计算的偏移量
-
格式化的时间字符串(format string)
-
结构化的时间(struct_time)—>元组,9个元素,(年月日时分秒,一年的第几周,一年的第几天,夏令时)
>>> time.strftime('%Y-%m-%d %X') '2019-07-26 08:57:09'
python中时间日期格式化符号:
%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 当前时区的名称
%% %号本身
time模块的常用方法
方法 | 描述 |
---|---|
time.localtime([sec]) | 将一个时间戳转化为一个当前时间区的struct_time(若未提供参数,当前时间) |
time.gmtime([sec]) | 和localtime()类似,不同的是,其实将一个时间戳转换为UTC的时区(0时区)的struct_time |
time.time() | 返回当前时间戳 |
time.mktime(t) | 将time.struct_time转化为时间戳 |
time.sleep(sec) | 线程推迟肯定的运行时间,单位(s) |
time.asctime([t]) | 把表时间的元组或struct_time表示为:‘Sun JULY 26 09:06:35 2019’;如果未传参数,默认为time.localtime() |
time.ctime([t]) | 把一个时间戳转化为time.asctime()的形式。如果未传参数,默认time.time() |
time.strftime(format[,t]) | 把一个代表时间的元组/struct_time(localtime()和gmtime()转化为格式化的字符串,未传参数,默认为time.localtime()) |
time.strptime() | 将结构化字符串转化为struct_time形式 |
- 时间戳,计算机识别的
- 字符串时间,人类可看
- 结构化时间,对时间操作
时间戳和结构化时间转换
- time.gmtime
- time.localtime
>>> now=time.time()
>>> time.gmtime(now)#UTC时间,0时区
time.struct_time(tm_year=2019, tm_mon=7, tm_mday=26, tm_hour=1, tm_min=20, tm_sec=0, tm_wday=4, tm_yday=207, tm_isdst=0)
>>> time.localtime(now)#当地时间,以北京所在时区为准
time.struct_time(tm_year=2019, tm_mon=7, tm_mday=26, tm_hour=9, tm_min=20, tm_sec=0, tm_wday=4, tm_yday=207, tm_isdst=0)
结构化时间和时间戳的转化
- time.mktime(结构化时间)
>>> tp_s=time.localtime()
>>> time.mktime(tp_s)
1564104193.0
结构化时间的到字符串时间的转化
- time.strftime(format[,t])
>>> tp_s=time.localtime()
>>> time.strftime('%Y-%m-%d %X',tp_s)
'2019-07-26 09:26:18'
字符串时间到结构化时间的转化
time.strptime(时间字符串,字符串对应格式)
>>> time.strptime('2019-7-26','%Y-%m-%d')
time.struct_time(tm_year=2019, tm_mon=7, tm_mday=26, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=207, tm_isdst=-1)
结构化时间和字符串时间的转化(国际化时间字符串)
- time.asctime(结构化时间)
>>> tp_s=time.localtime()
>>> time.asctime(tp_s)
'Fri Jul 26 09:49:09 2019'
>>> time.asctime()
'Fri Jul 26 09:50:24 2019'
时间戳和字符串的转化(国际化)
>>> time.ctime()
'Fri Jul 26 09:51:25 2019'
>>> time.ctime(1500000000)
'Fri Jul 14 10:40:00 2017'
datetime模块
相比time来说,datetime模块接口更直观,更容易调用
方法(类) | 描述 |
---|---|
datetime.date | 表示日期(类),常用属性year、month、day |
datetime.time | 表示时间(类),常用属性hour、minute、second、microsecond |
datetime.datetime | 表示日期 |
datetime.timedelta | 表示时间间隔 |
datetime.tzinfo | 与时区有关的信息 |
>>> import datetime
>>> datetime.datetime.now()
#datetime.datetime(2019, 7, 26, 10, 2, 26, 178839)
>>> print(datetime.datetime.now())
#2019-07-26 10:02:52.008821
>>> print(datetime.datetime.now().date())
2019-07-26
>>> print(datetime.datetime.now().time())
10:04:31.832232
> print(datetime.datetime.now()+datetime.timedelta(-1))
2019-07-25 10:11:16.924317
>>> print(datetime.datetime.now()+datetime.timedelta(hours=1))
2019-07-26 11:11:36.054295