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 模块,你可以轻松处理各种与时间相关的任务!

    关的编程需求!

    作者:jmxer

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python time模块详解与教程

    发表回复