时间模块(time和datetime)
表示时间的方式:
1.时间戳(1970至今的时间间隔总秒数)
2.格式化的字符串(按照固定格式的时间字符串)
3.元组(9个元素形成)
ps:UTC世界标准时间,中国为UTC+8,比标准时间早8小时;DST是夏令时
一、time模块:
time.time()#获取当前时间戳
time.sleep(seconds)#静默3秒
time.localtime(seconds)#时间戳转换为元组格式
time.gmtime(seconds) #时间戳转换为元组格式,不传时间戳转换为标准时间
time.gmtime(seconds) #时间戳转换为元组格式,不传时间戳转换为本地时间
time.ctime(seconds) #时间戳转换为固定格式化字符串格式
time.mktime(tuple) #元组转换为时间戳格式
time.strftime(format,tuple)#元组转换为格式化字符串格式
time.asctime(tuple) #元组转换为固定格式化字符串格式
time.strptime(str,format) #格式化字符串转换为元组格式
二、datetime模块
datetime.datetime.now() #获取当前时间
datetime.date.fromtimestamp(time.time()) #时间戳直接转成日期格式
datetime.datetime.now() + datetime.timedelta(3) #当前时间+3天
datetime.datetime.now() + datetime.timedelta(-3)) #当前时间-3天
datetime.datetime.now() + datetime.timedelta(hours=3)) #当前时间+3小时
datetime.datetime.now() + datetime.timedelta(minutes=30)) #当前时间+30分
datetime.datetime.now().replace(minute=3,hour=2)) #时间替换
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 当前时区的名称
%% %号本身
三、常用时间处理
import datetime # 当前时间:2021-09-23 12:04:23.110608 now = datetime.datetime.now() # 当前时间+3天:2021-09-26 12:05:48.264755 delta = datetime.datetime.now() + datetime.timedelta(3) # 当前时间+3小时:2021-09-23 15:07:17.134635 delta1 = datetime.datetime.now() + datetime.timedelta(hours=3) # 当前时间+30分:2021-09-23 12:37:30.189610 delta2 = datetime.datetime.now() + datetime.timedelta(minutes=30) # 日期格式转字符串:2021-09-23 12:08:29 str = now.strftime('%Y-%m-%d %H:%M:%S') # 字符串转日期:2012-03-05 16:26:23 t_str = '2012-03-05 16:26:23' d = datetime.datetime.strptime(t_str, '%Y-%m-%d %H:%M:%S') # 获取时间里的年月日:2021 9 23 12 12 57 print(now.year,now.month,now.day,now.hour,now.minute,now.second) # 时间加减计算:3 days, 0:00:00.000012 print(delta-now)