1. 三个模块主要是用来做什么的?
- time模块
- datetime模块 主要是对年月日时分秒,时间差的处理,下面有4个常用的类:
- time类 表示时间(时分秒)
- datetime类 表示日期时间
- date类 表示日期(年月日)
- timedelta类 表示日期时间间隔
- dateutil模块
2. 三个模块各自的方法,属性
-
time类
-
time() 时间戳
- 获取从1970-1-1到当前时间的时间戳,10位
-
strftime(格式[,obj]) 格式化字符串
-
import time print(time.strftime("%Y-%m-%d"))
-
-
localtime([obj]) 结构化时间,可以单独提取年,月,日等等
-
import time res = time.localtime() print(res.tm_year)
三者之间转换:
-
时间戳 ->(localtime()) -> 结构化时间 ->(strftime())-> 格式化时间
-
时间戳 <-mktime()<- 结构化时间 <-(striptime())<- 格式化时间
-
-
-
sleep() 睡眠时间,单位:s
-
import time for i in range(4): print(str(int(time.time()))[-2:]) time.sleep(1) 假设当前时间戳后2位是00,则输出分别是: 00,01,02,03
-
-
-
datetime模块下的类
-
time类
- 属性hour,minute,second
-
from datetime import time t = time(16,25,12) # 初始化 print(t.hour) # 16 print(t.minute) # 25 print(t.second) # 12
-
- 属性hour,minute,second
-
date类
- 方法
- repalce(year,month,day) 替换年月日
-
from datetime import date d = date(2023,12,16) print(d.replace(year=2023,month=11)) # 2023-11-16
-
- strftime(format) date对象->字符串
-
from datetime import date date1 = date.today() format1 = date.strftime(date1, "%Y%m%d") print(format1) # 20240131
-
- today()当日
- isoweekday() 返回星期几
-
from datetime import date d = date(2023,12,16) print(d.isoweekday()) # 6
-
- repalce(year,month,day) 替换年月日
- 属性year,month,day
-
from datetime import date d = date(2023,12,16) print(d.year) # 2023 print(d.month) # 12 print(d.day) # 16
-
- 方法
-
datetime类
-
方法
-
1.格式化字符串,时间戳和结构化对象转换
- 字符串->datetime对象使用datetime.strptime()
-
from datetime import datetime date1_string = "2023-04-20" date1 = datetime.strptime(date1_string,"%Y-%m-%d") print(date1) # 2023-04-20 00:00:00 print(type(date1)) # <class 'datetime.datetime'>
-
- datetime对象->字符串 使用datetime.strftime(format)即解析字符串为时间
- now() 获取当前的日期时间
- timestamp()获取时间戳
-
from datetime import datetime d = datetime(2024, 1, 31, 12, 0, 0) print(d.timestamp()) # 1706673600.0
-
-
- 属性year,month,day,hour,minute,second
-
-
timedelta类
-
1.语法格式
- timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]])
-
2.场景1:计算2个日期之差,
- 属性days,取天维度差异
-
import datetime def calculate_days_between(date1, date2): # 在此处编写你的代码 date1 = datetime.datetime.strptime(date1,'%Y-%m-%d') date2 = datetime.datetime.strptime(date2,'%Y-%m-%d') #类timedelta的属性days date3 = (date2 - date1).days # 10 print(type(date3)) return date3 # 获取用户输入 date1 = "2023-04-10" date2 = "2023-04-20" # 调用函数 print(calculate_days_between(date1, date2))
-
- 属性days,取天维度差异
-
3.场景2:指定某个日期的间隔日期后的日期
-
from datetime import datetime, timedelta d = datetime(2024, 1, 31, 12, 0, 0) d1 = d + timedelta(days=10) print(d1) # 2024-02-10 12:00:00
-
-
-