Python组蓝桥杯备赛超详细知识点总结笔记_语言基础篇2---日期与时间

Python组蓝桥杯备赛超详细知识点总结笔记_语言基础篇2—日期与时间

五、日期与时间

1. 核心模块

模块功能特点适用场景
time基础时间操作(时间戳、休眠、字符串转换)简单计时、格式处理
datetime高级日期时间运算(日期 / 时间 / 间隔类型、时间差计算)复杂时间计算(日期加减、跨天时间差等)

2. time 模块

(1)核心功能
功能函数 / 方法说明
时间戳time.time()返回从 1970-01-01 00:00:00 UTC 到现在的秒数(浮点数),一般用于计时
程序休眠time.sleep(x)暂停程序 x 秒(x 可为小数)
本地时间对象time.localtime()返回struct_time对象(含年 / 月 / 日等属性)
(2)时间与字符串转换
转换方向函数示例
时间→字符串time.strftime(format, t)time.strftime("%Y-%m-%d", t)
字符串→时间time.strptime(string, format)time.strptime("2024-05-20", "%Y-%m-%d")
(3)访问具体时间属性t=time.localtime()
时间属性代码示例取值范围 / 说明
年份t.tm_year4 位数年份(如 2024)
月份t.tm_mon1-12(如 5 表示 5 月)
日期t.tm_mday1-31(如 20 表示 20 日)
小时(24 小时制)t.tm_hour0-23
分钟t.tm_min0-59
秒(含闰秒)t.tm_sec0-61
周几t.tm_wday0-6(0 表示周一,6 表示周日)
年第几天t.tm_yday1-366(闰年 366 天)
夏令时标识t.tm_isdst0(非夏令时)、1(夏令时)、-1(未知)
(4)常用格式指令
格式指令含义示例
%Y4 位数年份2024
%m2 位数月份(01-12)05(5 月)
%d2 位数日期(01-31)20
%H24 小时制小时(00-23)14(下午 2 点)
%M2 位数分钟(00-59)30
%S2 位数秒(00-61)45
%a本地化星期缩写周一(中文)、Mon(英文)
%A本地化星期全称星期一(中文)、Monday(英文)
%b本地化月份缩写5 月(中文)、May(英文)
%B本地化月份全称五月(中文)、May(英文)

3. datetime 模块

(1)核心数据类型
类型包含信息示例
date年、月、日datetime.date(2024,5,20)
time时、分、秒datetime.time(14,30,45)
datetime年、月、日、时、分、秒datetime.datetime(2024,5,20,14,30,45)
timedelta时间间隔(天、秒、微秒)datetime.timedelta(days=7)
(2)data
a. 创建 date 对象
  • 语法datetime.date(year, month, day)
  • 输出结果YYYY-MM-DD(默认格式)
b. 属性访问
属性名功能描述示例代码输出结果
year获取 4 位数年份print(a.year)2023
month获取 1-12 的月份print(a.month)10
day获取 1-31 的日期print(a.day)1
c. 方法
方法名功能描述示例代码输出结果
weekday()返回星期(0 = 周一,6 = 周日)print(a.weekday())6(2023-10-01 是周日)
d. 运算规则
运算符 / 操作规则说明示例代码示例输出
date1 - date2date 相减,得timedelta(天数差)b = datetime.date(2023,10,7) print(b - a)6 days, 0:00:00
date ± timedeltadate 与时间间隔加减,得新 date(推算日期)delta = datetime.timedelta(days=100) print(a + delta) / print(a - delta)2024-01-09 / 2023-06-23
> / < / == / >= / <=按日期先后比较,早的日期为 “小”print(a < b) / print(a == b)True / False

(3)time

a. 创建 time 对象
  • 语法datetime.time(hour, minute, second)
  • 输出结果HH:MM:SS(默认格式)
b. 属性访问
属性名功能描述示例代码输出结果
hour获取 0-23 的小时数print(a.hour)10
minute获取 0-59 的分钟数print(a.minute)25
second获取 0-59 的秒数print(a.second)30
c. 操作规则
操作类型规则说明示例代码示例输出
> / < / == / >= / <=按时间先后比较(早的时间为 “小”)print(datetime.time(10,25) < datetime.time(11,0)) / print(a == datetime.time(10,25,30))True / Flase
不支持直接加减运算需先将 time 对象转为 datetime 类型(结合日期)后再计算直接写datetime.time(10,25) + datetime.time(11,0)会报错

(4)datetime

a. 创建 datetime 对象
① 直接创建
  • 语法datetime.datetime(year, month, day, hour, minute, second)
  • 输出结果YYYY-MM-DD HH:MM:SS(默认格式)
② 组合创建
  • 语法datetime.datetime.combine(date_obj, time_obj)

  • 输出结果YYYY-MM-DD HH:MM:SS(默认格式)

  • 示例代码:

    import datetime
    a_date = datetime.date(2023,10,1)	#data对象
    a_time = datetime.time(17,25,35)	#time对象
    b = datetime.datetime.combine(a_date, a_time)
    
b. 属性访问
属性名功能描述示例代码输出结果
year获取 4 位数年份print(a.year)2023
month获取 1 - 12 的月份print(a.month)10
day获取 1 - 31 的日期print(a.day)1
hour获取 0 - 23 的小时数print(a.hour)10
minute获取 0 - 59 的分钟数print(a.minute)25
second获取 0 - 59 的秒数print(a.second)30
c. 方法
方法名功能描述示例代码输出结果
date()返回对应date对象print(a.date())2023-10-01
time()返回对应time对象print(a.time())10:25:30
weekday()返回星期(0 = 周一,6 = 周日)print(a.weekday())6(2023-10-01 是周日)
d. 运算规则
运算符 / 操作规则说明示例代码示例输出
datetime1 - datetime2datetime相减,得timedelta(含天 / 时 / 分 / 秒等差值)b = datetime.datetime(2023,10,1,17,25,35)``print(b - a)7:00:05
datetime ± timedeltadatetime与时间间隔加减,得新datetime对象(推算日期时间)print(a + datetime.timedelta(hours=5))2023-10-01 15:25:30
> / < / == / >= / <=按日期时间先后比较,早的为 “小”print(a < b) / print(a == b)True / False

(5) timedelta

a. 创建 timedelta 对象
  • 语法datetime.timedelta(参数)

  • 参数weeks/days/hours/minutes/seconds/milliseconds/microseconds(会自动转换为天、秒、微秒来存储)

  • 输出结果X days, HH:MM:SS

  • 示例代码

    import datetime
    delta1 = datetime.timedelta(days=100)	#输出结果:100 days, 0:00:00
    delta2 = datetime.timedelta(weeks=1, days=2, hours=3)	#输出结果:9 days, 3:00:00
    
b. 属性访问
属性名功能描述示例代码输出结果
days获取间隔的天数(整数)delta = datetime.timedelta(days=2, hours=3, minutes=30)``print(delta.days)2
seconds获取间隔的秒数(范围 0 - 86399,不含天数部分)print(delta.seconds)12600
microseconds获取间隔的微秒数(范围 0 - 999999)print(delta.microseconds)0
c. 方法
方法名功能描述示例代码输出结果
total_seconds()返回时间间隔的总秒数(包含天数、微秒)print(delta.total_seconds())183600.0

(6)常用方法

功能方法 / 语法说明
获取当前日期datetime.date.today()返回date对象
获取当前日期时间datetime.datetime.now()返回datetime对象
日期时间转字符串obj.strftime(format)time模块格式指令
字符串转日期时间datetime.datetime.strptime(s, format)严格匹配格式
日期时间运算date/datetime ± timedelta结果为新的date/datetime对象
计算时间差date1 - date2 / dt1 - dt2结果为timedelta对象
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值