logo
53

日期与时间

⏱️ 25分钟

日期与时间(datetime):时间数据的标准处理方式

你现在可能会困惑什么

“时间不就是字符串吗,为什么要对象化?”

字符串能显示,不能可靠计算。 时间比较、加减、格式转换都应使用 datetime 对象。

一句话定义

datetime 提供时间创建、解析、格式化与运算能力。

生活类比

手写日历能看不能算;电子日历能自动提醒和计算。

最小可运行例子

from datetime import datetime, timedelta

now = datetime.now()
print(now.strftime("%Y-%m-%d %H:%M:%S"))

deadline = now + timedelta(days=7)
print(deadline.strftime("%Y-%m-%d"))

字符串转时间

dt = datetime.strptime("2026-02-11 09:30", "%Y-%m-%d %H:%M")
print(dt)

课堂小测(5 分钟)

  1. 打印当前时间并格式化。
  2. 计算 30 天后的日期。
  3. 写函数计算距离截止日剩余天数。

课堂小测参考答案与判分点

  • 参考答案方向:能写出可运行代码,并覆盖题目中的核心条件与边界输入。
  • 判分点 1(正确性):主流程结果正确,关键分支可执行。
  • 判分点 2(可读性):变量命名清晰,结构不过度嵌套。
  • 判分点 3(健壮性):对空值、类型错误或异常输入有基础保护。

迁移任务(课后)

实现“任务到期提醒器”:输入截止日期,输出剩余天数和状态。

本节验收标准

你能独立做到:

  • 解析和格式化时间字符串
  • 使用 timedelta 做时间计算
  • 避免字符串直接比较时间

常见报错与调试步骤(新手版)

  • 报错看不懂:先读最后一行错误类型(如 TypeErrorNameError),再回到对应代码行定位。
  • 不确定变量值:在关键位置临时 print(变量, type(变量)),先确认数据是否符合预期。
  • 改了代码却没生效:确认文件已保存、运行的是当前文件、终端环境(venv)是否正确。

常见误区

  • 误区:直接比较时间字符串大小。
  • 正解:先转 datetime 再比较。