Tailwind CSSTailwind CSS
Home
  • Tailwind CSS 书籍目录
  • Vue 3 开发实战指南
  • React 和 Next.js 学习
  • TypeScript
  • React开发框架书籍大纲
  • Shadcn学习大纲
  • Swift 编程语言:从入门到进阶
  • SwiftUI 学习指南
  • 函数式编程大纲
  • Swift 异步编程语言
  • Swift 协议化编程
  • SwiftUI MVVM 开发模式
  • SwiftUI 图表开发书籍
  • SwiftData
  • ArkTS编程语言:从入门到精通
  • 仓颉编程语言:从入门到精通
  • 鸿蒙手机客户端开发实战
  • WPF书籍
  • C#开发书籍
learn
  • Java编程语言
  • Kotlin 编程入门与实战
  • /python/outline.html
  • AI Agent
  • MCP (Model Context Protocol) 应用指南
  • 深度学习
  • 深度学习
  • 强化学习: 理论与实践
  • 扩散模型书籍
  • Agentic AI for Everyone
langchain
Home
  • Tailwind CSS 书籍目录
  • Vue 3 开发实战指南
  • React 和 Next.js 学习
  • TypeScript
  • React开发框架书籍大纲
  • Shadcn学习大纲
  • Swift 编程语言:从入门到进阶
  • SwiftUI 学习指南
  • 函数式编程大纲
  • Swift 异步编程语言
  • Swift 协议化编程
  • SwiftUI MVVM 开发模式
  • SwiftUI 图表开发书籍
  • SwiftData
  • ArkTS编程语言:从入门到精通
  • 仓颉编程语言:从入门到精通
  • 鸿蒙手机客户端开发实战
  • WPF书籍
  • C#开发书籍
learn
  • Java编程语言
  • Kotlin 编程入门与实战
  • /python/outline.html
  • AI Agent
  • MCP (Model Context Protocol) 应用指南
  • 深度学习
  • 深度学习
  • 强化学习: 理论与实践
  • 扩散模型书籍
  • Agentic AI for Everyone
langchain

6. Python 标准库

6.2 datetime 与 time 模块

Python 提供了两个强大的模块来处理日期和时间:datetime 和 time。这两个模块在 Python 标准库中非常常用,尤其是在需要处理时间戳、日期计算、时间格式化等场景时。本节将详细介绍这两个模块的功能和使用方法。


6.2.1 datetime 模块

datetime 模块是 Python 中处理日期和时间的主要模块。它提供了多个类来表示日期、时间、日期时间、时间差等。

1. date 类

date 类用于表示日期(年、月、日)。常用的方法包括:

  • date.today():获取当前日期。
  • date(year, month, day):创建一个日期对象。
  • date.strftime(format):将日期格式化为字符串。
from datetime import date

# 获取当前日期
today = date.today()
print("Today's date:", today)

# 创建指定日期
specific_date = date(2023, 10, 1)
print("Specific date:", specific_date)

# 格式化日期
formatted_date = specific_date.strftime("%Y-%m-%d")
print("Formatted date:", formatted_date)
2. time 类

time 类用于表示时间(时、分、秒、微秒)。常用的方法包括:

  • time(hour, minute, second, microsecond):创建一个时间对象。
  • time.strftime(format):将时间格式化为字符串。
from datetime import time

# 创建时间对象
t = time(14, 30, 45)
print("Time:", t)

# 格式化时间
formatted_time = t.strftime("%H:%M:%S")
print("Formatted time:", formatted_time)
3. datetime 类

datetime 类是 date 和 time 的结合体,用于表示日期和时间。常用的方法包括:

  • datetime.now():获取当前日期和时间。
  • datetime(year, month, day, hour, minute, second):创建一个日期时间对象。
  • datetime.strftime(format):将日期时间格式化为字符串。
from datetime import datetime

# 获取当前日期和时间
now = datetime.now()
print("Current datetime:", now)

# 创建指定日期时间
specific_datetime = datetime(2023, 10, 1, 14, 30, 45)
print("Specific datetime:", specific_datetime)

# 格式化日期时间
formatted_datetime = specific_datetime.strftime("%Y-%m-%d %H:%M:%S")
print("Formatted datetime:", formatted_datetime)
4. timedelta 类

timedelta 类用于表示时间差,常用于日期和时间的加减操作。

from datetime import timedelta

# 创建一个时间差
delta = timedelta(days=5, hours=3)

# 计算未来日期
future_date = datetime.now() + delta
print("Future date:", future_date)

6.2.2 time 模块

time 模块提供了与时间相关的底层操作,通常用于处理时间戳、睡眠等任务。

1. 时间戳

时间戳是从 1970 年 1 月 1 日(UTC)开始的秒数。time 模块提供了以下函数:

  • time.time():获取当前时间戳。
  • time.ctime(timestamp):将时间戳转换为可读的字符串。
import time

# 获取当前时间戳
timestamp = time.time()
print("Current timestamp:", timestamp)

# 将时间戳转换为可读字符串
readable_time = time.ctime(timestamp)
print("Readable time:", readable_time)
2. 时间格式化

time 模块支持将时间格式化为字符串,类似于 datetime 模块的 strftime 方法。

import time

# 格式化当前时间
formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print("Formatted time:", formatted_time)
3. 睡眠

time.sleep(seconds) 函数用于让程序暂停指定的秒数。

import time

print("Start sleeping...")
time.sleep(5)  # 暂停 5 秒
print("Wake up!")

6.2.3 datetime 与 time 模块的比较
特性datetime 模块time 模块
主要用途处理日期和时间,支持日期计算和格式化处理时间戳、睡眠等底层操作
时间表示使用 date、time、datetime 类使用时间戳或结构化时间
格式化支持 strftime 和 strptime支持 strftime 和 strptime
时间差计算支持 timedelta 类不支持直接的时间差计算
适用场景日期时间操作、日历应用时间戳操作、性能测试、定时任务

6.2.4 实际应用示例
1. 计算两个日期之间的天数
from datetime import date

date1 = date(2023, 10, 1)
date2 = date(2023, 10, 10)
delta = date2 - date1
print("Days between dates:", delta.days)
2. 定时任务
import time

def task():
    print("Task executed at:", time.ctime())

while True:
    task()
    time.sleep(10)  # 每 10 秒执行一次

通过本节的学习,您应该能够熟练使用 datetime 和 time 模块来处理日期和时间相关的任务。这两个模块是 Python 标准库中不可或缺的工具,掌握它们将极大地提升您的编程效率。

Last Updated:: 3/17/25, 7:20 PM