Python time 模块教程

Python 的 time 模块是标准库中用于处理时间的核心工具,广泛应用于日志记录、定时任务、性能测试等场景。本教程通过清晰的结构和实用的示例,帮助你快速掌握 time 模块的关键功能。

1. 什么是 time 模块?

time 模块是 Python 内置的标准库,提供了多种与时间相关的功能,包括:

  • 获取当前时间 :如时间戳、本地时间、UTC 时间。
  • 时间转换 :在时间戳、结构化时间和字符串之间自由切换。
  • 延迟程序执行 :暂停程序运行一段时间。
  • 时间计算 :测量代码执行时间或实现定时任务。

time 模块简单易用,适合各种需要处理时间的场景。


2. 时间表示方式

time 模块中,时间有三种主要的表示方式:

2.1 时间戳(Timestamp)

  • 定义 :时间戳是从 1970 年 1 月 1 日 00:00:00 UTC 开始经过的秒数(浮点数)。
  • 用途 :常用于计算时间差或存储时间。
  • 相关方法
    • time.time():返回当前时间的时间戳。

示例:

import time

timestamp = time.time()
print(f"当前时间戳: {timestamp}")

输出示例

当前时间戳: 1698567845.123456

2.2 结构化时间(struct_time

  • 定义 :一个包含多个字段的对象,表示时间的各个部分(如年、月、日、时、分、秒等)。
  • 用途 :便于操作和格式化时间。
  • 相关方法
    • time.localtime():将时间戳转换为本地时间的 struct_time
    • time.gmtime():将时间戳转换为 UTC 时间的 struct_time

示例:

import time

local_time = time.localtime()
utc_time = time.gmtime()

print(f"本地时间: {local_time}")
print(f"UTC 时间: {utc_time}")

输出示例

本地时间: time.struct_time(tm_year=2023, tm_mon=10, tm_mday=29, tm_hour=14, tm_min=30, tm_sec=45, ...)
UTC 时间: time.struct_time(tm_year=2023, tm_mon=10, tm_mday=29, tm_hour=6, tm_min=30, tm_sec=45, ...)

2.3 格式化时间字符串

  • 定义 :以人类可读的格式表示时间(如 "2023-10-29 14:30:45")。
  • 用途 :便于日志记录和显示。
  • 相关方法
    • time.strftime(format, struct_time):将 struct_time 转换为格式化字符串。
    • time.strptime(string, format):将格式化字符串解析为 struct_time

示例:

import time

# 当前时间的格式化字符串
formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print(f"Formatted time: {formatted_time}")

# 解析时间字符串
parsed_time = time.strptime("2023-10-29 14:30:45", "%Y-%m-%d %H:%M:%S")
print(f"Parsed time: {parsed_time}")

输出示例

Formatted time: 2023-10-29 14:30:45
Parsed time: time.struct_time(tm_year=2023, tm_mon=10, tm_mday=29, tm_hour=14, tm_min=30, tm_sec=45, ...)

3. 常用方法

3.1 获取当前时间

  • time.time() :返回当前时间的时间戳。
  • time.localtime() :返回当前时间的本地 struct_time
  • time.gmtime() :返回当前时间的 UTC struct_time

示例:

import time

timestamp = time.time()
local_time = time.localtime()
utc_time = time.gmtime()

print(f"时间戳: {timestamp}")
print(f"本地时间: {local_time}")
print(f"UTC 时间: {utc_time}")

3.2 延迟程序执行

  • time.sleep(seconds) :暂停程序执行指定的秒数。

示例:

import time

print("开始...")
time.sleep(2)  # 暂停 2 秒
print("结束!")

3.3 时间格式化与解析

  • time.strftime(format, struct_time) :将 struct_time 转换为格式化字符串。
  • time.strptime(string, format) :将格式化字符串解析为 struct_time
格式化符号:

符号

含义

示例

%Y

年(四位数)

2023

%m

月(两位数)

10

%d

日(两位数)

29

%H

小时(24 小时制)

14

%M

分钟

30

%S

45

示例:

import time

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

# 解析时间字符串
parsed_time = time.strptime("2023-10-29 14:30:45", "%Y-%m-%d %H:%M:%S")
print(f"解析后的时间: {parsed_time}")

3.4 时间计算与性能测试

  • time.time() 可用于计算程序运行时间。
  • time.mktime(struct_time) :将 struct_time 转换为时间戳。

示例:

import time

start_time = time.time()  # 记录开始时间
time.sleep(2)  # 模拟耗时操作
end_time = time.time()  # 记录结束时间

elapsed_time = end_time - start_time
print(f"耗时: {elapsed_time:.2f} 秒")

4. 完整示例:倒计时器

以下是一个完整的倒计时器示例,展示如何结合 time 模块的功能实现动态倒计时:

import time

def countdown(seconds):
    while seconds:
        mins, secs = divmod(seconds, 60)
        time_format = f"{mins:02d}:{secs:02d}"
        print(time_format, end="\r")  # 动态更新倒计时
        time.sleep(1)
        seconds -= 1
    print("倒计时结束!")

# 主程序
print("启动倒计时...")
countdown(10)
print("完成!")

输出示例

启动倒计时...
00:10
00:09
00:08
...
倒计时结束!
完成!

5. 总结

  • time 模块 提供了丰富的功能来处理时间,包括获取当前时间、格式化时间、延迟程序执行等。
  • 时间表示方式 包括时间戳、结构化时间和格式化字符串,每种方式都有其适用场景。
  • 常用方法
    • time.time():获取当前时间戳。
    • time.sleep():延迟程序执行。
    • time.strftime()time.strptime():格式化和解析时间。
    • time.localtime()time.gmtime():获取本地时间和 UTC 时间。
  • 应用场景 :日志记录、定时任务、性能测试等。

通过熟练掌握 time 模块,你可以轻松处理各种与时间相关的任务!

关的编程需求!

你可能感兴趣的:(Python模块,python,开发语言)