当前位置: 首页 > article >正文

Python 标准库:time——时间的访问和转换

文章目录

  • 模块介绍
  • 使用场景
  • 主要类
  • 主要函数
    • - time()
    • - sleep()
    • - localtime()
    • - gmtime()
    • - strftime()
    • - strptime()
    • - perf_counter()
    • - process_time()
  • 注意事项
  • 总结


模块介绍

time 模块是 Python 的标准库之一,提供了多种与时间相关的函数。它允许用户获取当前的时间、进行时间间隔的操作以及处理与日期和时间相关的转换。该模块提供了许多功能,如计算时间差、暂停程序、格式化时间字符串等。

该模块的函数大多数与系统的时钟操作密切相关,支持多种不同平台和系统的时间格式。

使用场景

  • 获取当前时间: 获取当前时间戳、格式化时间、日期等。
  • 时间转换: 将时间戳转换为人类可读的时间格式,或将格式化时间转为时间戳。
  • 延时和控制: 暂停程序执行一段时间,适用于控制程序执行的速度。
  • 性能测量: 测量程序的执行时间。
  • 设置时间区域: 设置和获取本地时间的时区。

主要类

time 模块并没有定义用户直接使用的类,但其返回的结构化时间对象(如 struct_time)可以被用户操作。localtime() 和 gmtime() 函数返回的时间结构就是 struct_time。

描述
struct_time返回由 localtime() 或 gmtime() 函数提供的结构化时间对象,包含了年份、月份、日期、小时、分钟、秒等信息。

主要函数

函数描述
time()返回当前时间的时间戳(1970纪元后经过的秒数)。
sleep(seconds)暂停程序执行指定的秒数。
localtime([secs])将秒数转换为本地时间的结构化时间。
gmtime([secs])将秒数转换为格林尼治标准时间(UTC)的结构化时间。
strftime(format[, t])根据给定的格式化字符串返回格式化的时间。
strptime(string, format)根据给定的格式化字符串解析时间字符串。
perf_counter()返回一个高精度的时间计数器,通常用于测量时间间隔。
process_time()返回程序的 CPU 执行时间,忽略休眠和等待时间。

- time()

返回当前的时间戳,即自 1970 年 1 月 1 日(Unix 纪元)以来经过的秒数。它可以用于测量时间间隔、时间戳的获取等。

import time

timestamp = time.time()
print("Current timestamp:", timestamp)

- sleep()

让程序暂停执行指定的秒数。适用于需要延迟程序执行的场景,例如在某些任务间隔时暂停。

import time

print("Start")
time.sleep(3)  # 暂停 3 秒
print("End")

- localtime()

将时间戳转换为本地时间的 struct_time 对象。如果未传入参数,它默认返回当前时间的本地时间。

import time

time_obj = time.localtime()
print(time_obj.tm_year)  # 获取年份
print(time_obj.tm_mon)  # 获取月份
print(time_obj.tm_mday)  # 获取日
print(time_obj.tm_hour)  # 获取小时
print(time_obj.tm_min)  # 获取分钟
print(time_obj.tm_sec)  # 获取秒

- gmtime()

将时间戳转换为格林尼治标准时间(UTC)的 struct_time 对象。如果未传入参数,它默认返回当前时间的 UTC 时间。

import time

utc_time = time.gmtime()
print(utc_time)  # 输出当前的 UTC 时间结构

- strftime()

根据给定的格式化字符串返回格式化的时间。常用于将 struct_time 对象转换为易读的时间格式。

import time

formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print("Formatted time:", formatted_time)

- strptime()

根据给定的格式化字符串解析时间字符串,并返回 struct_time 对象。适用于时间字符串的解析。

import time

time_str = "2025-01-14 15:30:00"
parsed_time = time.strptime(time_str, "%Y-%m-%d %H:%M:%S")
print("Parsed time:", parsed_time)

- perf_counter()

返回一个高精度的计数器,通常用于测量时间间隔。适用于程序性能分析和时间测量。

import time

start = time.perf_counter()
# 执行某些操作
end = time.perf_counter()
print(f"Elapsed time: {end - start} seconds")

- process_time()

返回程序的 CPU 执行时间,不包括系统休眠时间。适用于计算程序的执行时间,尤其是涉及 CPU 密集型任务时。

import time

start = time.process_time()
# 执行某些计算
end = time.process_time()
print(f"CPU time: {end - start} seconds")

注意事项

  • 时间戳与本地时间:time.time() 返回的是自 Unix 纪元以来的秒数(时间戳),而 localtime() 和 gmtime() 可以将其转换为结构化的本地时间或 UTC 时间。
  • 夏令时(DST):在某些时区中,夏令时可能会影响时间计算,需要注意时区差异。
  • 高精度计时器:perf_counter() 提供更高精度的时间计数器,适合用于性能分析。
  • CPU时间与实际时间:process_time() 只计算 CPU 执行时间,忽略了程序的等待和休眠时间。

总结

time 模块为 Python 提供了处理时间和日期的多种功能,适用于多种与时间相关的场景,包括获取当前时间、格式化时间、暂停程序执行、计算程序运行时长等。通过这些功能,开发者可以更高效地处理时间任务、执行性能测量以及进行程序调度。


http://www.kler.cn/a/503499.html

相关文章:

  • 【2025最新】机器学习类计算机毕设选题80套,适合大数据,人工智能
  • rtthread学习笔记系列(4/5/6/7/15/16)
  • 逻辑测试题
  • ffmpeg 编译遇到的坑
  • 【TI毫米波雷达】DCA1000不使用mmWave Studio的数据采集方法,以及自动化实时数据采集
  • 每天五分钟深度学习框架pytorch:快速搭建VGG网络的基础模块VGG块
  • MySQL社区版下载及其环境配置(msi)
  • 嵌入式Linux之基于TCP协议的程序
  • 配置Allure环境变量【macOS版】
  • 麒麟系统设置tomcat开机自启动
  • Unity-Mirror网络框架-从入门到精通之RigidbodyPhysics示例
  • 【Ubuntu与Linux操作系统:二、图形界面与命令行】
  • 【机器人】SceneGrasp 同时支持3D物体重建、6D位姿估计、抓取点估计
  • 字符串算法篇——字里乾坤,算法织梦,解构字符串的艺术(下)
  • JAVA实战开源项目:课程管理平台(Vue+SpringBoot) 附源码
  • 主析取范式
  • 【HarmonyOS NEXT】鸿蒙跳转华为应用市场目标APP下载页
  • 视频转码对画质有影响吗?视频融合平台EasyCVR支持哪些转码格式?
  • Linux SUID提权
  • Prompt工程框架介绍与场景选择
  • Mysql--架构篇--体系结构(连接层,SQL层,存储引擎层,文件存储层)
  • 《o3模型的突破:AI从模仿到推理的关键转折》
  • 相机小孔成像模型与透视变换
  • Vue 学习之旅:核心技术学习总结与实战案例分享(vue指令下+计算属性+侦听器)
  • 一键掌握多平台短视频矩阵营销/源码部署
  • ChordCraft荣获重要认可:推动全球音乐教育的数字化革新