Python time模块之时间处理与日期操作指南

 更新时间:2026年08月23日 14:56:11   作者:何以解忧,唯有..  
在 Python 编程中,处理时间和日期是常见的需求,无论是记录日志、定时任务、性能分析还是数据时间戳处理,都离不开时间模块,Python 内置的 time 模块提供了丰富的函数来处理时间相关的操作,本文将详细介绍 time 模块的核心功能,需要的朋友可以参考下

1. 引言

在 Python 编程中,处理时间和日期是常见的需求,无论是记录日志、定时任务、性能分析还是数据时间戳处理,都离不开时间模块。Python 内置的 time 模块提供了丰富的函数来处理时间相关的操作,它是标准库中最基础、最常用的时间模块之一。

本文将详细介绍 time 模块的核心功能,包括时间获取、格式化、休眠、性能计时等,并通过实际代码示例帮助你快速掌握其用法。

2. time 模块概述

time 模块主要提供了以下功能:

  • 时间获取:获取当前时间戳、结构化时间等。
  • 时间格式化:将时间在字符串、时间戳、结构化格式之间转换。
  • 程序休眠:让程序暂停执行指定的秒数。
  • 性能计时:测量代码段的执行时间。
  • 时区处理:获取和设置时区信息(部分功能)。

3. 核心函数与用法

3.1 获取当前时间

time.time()

返回当前时间的时间戳(浮点数),表示自 1970 年 1 月 1 日 00:00:00(UTC)以来的秒数。

import time

timestamp = time.time()
print(f"当前时间戳: {timestamp}")
# 输出示例: 当前时间戳: 1745315368.123456

time.localtime([secs])

将时间戳转换为本地时间的结构化时间(struct_time 对象)。若不传入参数,则使用当前时间。

local_time = time.localtime()
print(local_time)
# 输出: time.struct_time(tm_year=2026, tm_mon=8, tm_mday=22, tm_hour=15, tm_min=49, tm_sec=28, tm_wday=4, tm_yday=234, tm_isdst=0)

# 可以访问具体字段
print(f"年份: {local_time.tm_year}")
print(f"月份: {local_time.tm_mon}")
print(f"日期: {local_time.tm_mday}")

time.gmtime([secs])

将时间戳转换为 UTC 时间的结构化时间。

utc_time = time.gmtime()
print(utc_time)

3.2 时间格式化与解析

time.strftime(format[, t])

将结构化时间(struct_time 或元组)格式化为字符串。

formatted = time.strftime("%Y-%m-%d %H:%M:%S", local_time)
print(formatted)  # 输出: 2026-08-22 15:49:28

# 常用格式符:
# %Y: 四位年份
# %m: 月份(01-12)
# %d: 日期(01-31)
# %H: 小时(00-23)
# %M: 分钟(00-59)
# %S: 秒(00-59)
# %A: 星期全名
# %a: 星期缩写

time.strptime(string[, format])

将格式化的时间字符串解析为结构化时间。

time_str = "2026-08-22 15:49:28"
parsed_time = time.strptime(time_str, "%Y-%m-%d %H:%M:%S")
print(parsed_time)

3.3 程序休眠

time.sleep(secs)

让当前线程暂停执行指定的秒数(可以是浮点数,表示更精确的时间)。

print("开始休眠...")
time.sleep(2.5)  # 休眠 2.5 秒
print("休眠结束!")

3.4 性能计时

time.perf_counter()

返回一个高精度的性能计数器的值(以秒为单位),用于测量短时间间隔。

start = time.perf_counter()

# 模拟耗时操作
time.sleep(0.1)

end = time.perf_counter()
print(f"操作耗时: {end - start:.6f} 秒")

time.process_time()

返回当前进程的系统和用户 CPU 时间总和(以秒为单位),用于测量 CPU 时间。

start_cpu = time.process_time()

# 执行一些计算
sum(range(1000000))

end_cpu = time.process_time()
print(f"CPU 时间: {end_cpu - start_cpu:.6f} 秒")

4. 时间戳与结构化时间转换

time 模块提供了在时间戳和结构化时间之间转换的函数:

  • time.mktime(t):将本地时间的结构化时间转换为时间戳。
  • time.gmtime([secs]):将时间戳转换为 UTC 结构化时间(已介绍)。
  • time.localtime([secs]):将时间戳转换为本地结构化时间(已介绍)。
# 结构化时间 -> 时间戳
struct_time = time.localtime()
timestamp_from_struct = time.mktime(struct_time)
print(f"转换回的时间戳: {timestamp_from_struct}")

# 时间戳 -> 结构化时间(本地)
new_struct = time.localtime(timestamp_from_struct)
print(new_struct)

5. 其他实用函数

time.ctime([secs])

将时间戳转换为可读的字符串格式。若不传入参数,则使用当前时间。

readable = time.ctime()
print(readable)  # 输出: Fri Aug 22 15:49:28 2026

time.asctime([t])

将结构化时间转换为可读的字符串格式。

asc_time = time.asctime(local_time)
print(asc_time)  # 输出: Fri Aug 22 15:49:28 2026

time.timezone

本地时区偏移量(秒,UTC 以西为正)。

print(f"本地时区偏移: {time.timezone} 秒")

6. 实战示例

示例 1:计算函数执行时间

import time

def expensive_function():
    total = 0
    for i in range(1000000):
        total += i
    return total

start = time.perf_counter()
result = expensive_function()
end = time.perf_counter()

print(f"函数结果: {result}")
print(f"执行时间: {end - start:.4f} 秒")

示例 2:生成带时间戳的日志

def log_message(level, message):
    timestamp = time.strftime("%Y-%m-%d %H:%M:%S")
    print(f"[{timestamp}] [{level}] {message}")

log_message("INFO", "程序启动成功")
time.sleep(1)
log_message("WARNING", "磁盘空间不足")

示例 3:简单的倒计时

def countdown(seconds):
    for i in range(seconds, 0, -1):
        print(f"\r倒计时: {i} 秒", end="", flush=True)
        time.sleep(1)
    print("\r倒计时结束!")

countdown(5)

7. 注意事项与最佳实践

  1. 时间戳精度:time.time() 返回的浮点数时间戳精度取决于系统,通常为微秒级。对于高精度计时,使用 time.perf_counter()。
  2. 时区问题:time 模块的时区功能有限,对于复杂的时区处理,建议使用 datetime 模块配合 pytz 库。
  3. time.sleep() 阻塞:该函数会阻塞当前线程,在 GUI 或异步程序中需谨慎使用。
  4. 性能计时选择:
    • 测量墙上时钟时间(实际耗时)用 time.perf_counter()。
    • 测量 CPU 时间(进程占用 CPU 的时间)用 time.process_time()。
  5. 格式化字符串:strftime 和 strptime 的格式符需严格匹配,否则会抛出 ValueError。

8. 总结

Python 的 time 模块是处理时间相关任务的基础工具,它提供了时间获取、格式化、休眠和计时等核心功能。掌握 time.time()、time.localtime()、time.strftime()、time.sleep() 和 time.perf_counter() 等常用函数,能够满足大多数日常开发需求。

对于更复杂的日期时间操作(如时区转换、日期加减、工作日计算等),可以结合 datetime 模块使用。time 模块与 datetime 模块相辅相成,共同构成了 Python 强大的时间处理能力。

以上就是Python time模块之时间处理与日期操作指南的详细内容,更多关于Python time时间处理与日期操作的资料请关注脚本之家其它相关文章!

相关文章

  • Linux系统上Nginx+Python的web.py与Django框架环境

    Linux系统上Nginx+Python的web.py与Django框架环境

    这篇文章主要介绍了Linux系统上Nginx+Python的web.py与Django框架环境,文中使用fastcgi作为连接,需要的朋友可以参考下
    2015-12-12
  • Python操作json数据的一个简单例子

    Python操作json数据的一个简单例子

    这篇文章主要介绍了Python操作json数据的一个简单例子,需要的朋友可以参考下
    2014-04-04
  • PyTorch平方根报错的处理方案

    PyTorch平方根报错的处理方案

    这篇文章主要介绍了PyTorch平方根报错的处理方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • 决策树剪枝算法的python实现方法详解

    决策树剪枝算法的python实现方法详解

    这篇文章主要介绍了决策树剪枝算法的python实现方法,结合实例形式较为详细的分析了决策树剪枝算法的概念、原理并结合实例形式分析了Python相关实现技巧,需要的朋友可以参考下
    2019-09-09
  • Pandas自定义shift与DataFrame求差集的小技巧

    Pandas自定义shift与DataFrame求差集的小技巧

    Python是进行数据分析的一种出色语言,主要是因为以数据为中心的python软件包具有奇妙的生态系统,下面这篇文章主要给大家介绍了关于Pandas自定义shift与DataFrame求差集的相关资料,需要的朋友可以参考下
    2022-02-02
  • 分享十个Python超级好用提高工作效率的自动化脚本

    分享十个Python超级好用提高工作效率的自动化脚本

    在这个自动化时代,我们有很多重复无聊的工作要做。 想想这些你不再需要一次又一次地做的无聊的事情,让它自动化,让你的生活更轻松。本文分享了10个Python自动化脚本,希望对大家有所帮助
    2022-11-11
  • Python PCA降维的两种实现方法

    Python PCA降维的两种实现方法

    大家好,本篇文章主要讲的是Python PCA降维的两种实现方法,感兴趣的的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-01-01
  • python实现过滤敏感词

    python实现过滤敏感词

    这篇文章主要介绍了python如何实现过滤敏感词,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-05-05
  • python小项目之五子棋游戏

    python小项目之五子棋游戏

    这篇文章主要为大家详细介绍了python小项目之五子棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-12-12
  • Pydantic中model_validator的实现

    Pydantic中model_validator的实现

    本文主要介绍了Pydantic中model_validator的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-04-04

最新评论