python常用模块之时间模块(time,datetime,timedelta)详解

Written by

in

文章目录
  • 需要导入 import time
  • 需要导入 from datetime import datetime
  • 需要导入from datetime import timedelta
  • time模块:适合系统级时间操作、性能测试和简单的时间戳处理 datetime模块:适合复杂的日期时间操作、计算和格式化 timedelta类:用于时间间隔计算,与datetime配合使用 在实际开发中,通常根据具体需求选择合适的模块: 性能测试和程序暂停使用 time 大部分日期时间处理使用 datetime 需要时间间隔计算时使用 timedelta 到此这篇关于python常用模块之时间模块(time,datetime,timedelta)详解的文章就介绍到这了,更多相关python时间模块内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客! 您可能感兴趣的文章: 一文带你吃透Python中的日期时间模块 python使用timeit时间模块 python中时间模块的基本使用教程 Python日期时间模块datetime详解与Python 日期时间的比较,计算实例代码 Python的时间模块datetime详解 详解python时间模块中的datetime模块 Python时间模块datetime、time、calendar的使用方法 python内置模块datetime.timedelta计算时间间隔示例代码 Python中的DateTime和TimeDelta详解
  • 目录
    • 1.time模块
      • 1.sleep(secs)
      • 2.strptime(string, format)
      • 3.strftime(format[, t])
      • 4.time()
      • 5.localtime()
    • 2.datetime模块
      • 1.strptime(string, format)
      • 2.strftime(format)
    • 3.timedelta模块
      • 1.timedelta()
    • 4.总结

      需要导入 import time

      time.sleep(secs)

      让当前线程暂停执行指定的秒数

      • secs:暂停的秒数(可以是浮点数,如0.1表示100毫秒)
      import time
      print("开始执行")
      time.sleep(2.5)
      print('2.5秒后继续执行')

      time.strptime(string, format)

      将字符串解析为时间元组

      import time
      time_tuple=time.strptime('2025-11-20','%Y-%m-%d')
      print(time_tuple)#time.struct_time(tm_year=2025, tm_mon=11, tm_mday=20, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=324, tm_isdst=-1)
      print(time_tuple.tm_year)#2025
      print(time_tuple.tm_mon)#11

      time.strftime(format[, t])

      将时间元组格式化为字符串

      参数t可以省略

      import time
      # 参数t省略时,默认获取当前时间
      print(time.strftime('%Y-%m-%d'))#2025-11-25
      # 获取当前时间的时间元组
      current_time = time.localtime()
      # 格式化为各种字符串格式
      print(time.strftime("%Y-%m-%d %H:%M:%S", current_time))  # 2023-08-07 10:30:45
      print(time.strftime("%A, %B %d, %Y", current_time))      # Monday, August 07, 2023
      print(time.strftime("%I:%M %p", current_time))           # 10:30 AM
      print(time.strftime("今天是%Y年的第%j天", current_time))  # 今天是2023年的第219天
      # 常用格式符号:
      formats = {
          "%Y": "4位数年份",
          "%y": "2位数年份", 
          "%m": "月份(01-12)",
          "%B": "月份全名",
          "%b": "月份缩写",
          "%d": "日期(01-31)",
          "%A": "星期全名",
          "%a": "星期缩写",
          "%H": "24小时制小时",
          "%I": "12小时制小时",
          "%M": "分钟",
          "%S": "秒",
          "%p": "AM/PM",
          "%j": "年份中的第几天"
      }
      # 不指定t参数,默认使用当前时间
      print(time.strftime("%c"))  # 标准的日期时间格式
      #Tue Nov 25 15:12:32 2025

      time.time() 返回当前时间的时间戳(从1970年1月1日00:00:00开始到现在的秒数)

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

      time.localtime()

      将时间戳转换为本地时间元组

      import time
      # 不传参数,默认使用当前时间
      local_time = time.localtime()
      print(local_time)
      # 输出:time.struct_time(tm_year=2025, tm_mon=11, tm_mday=25, tm_hour=15, tm_min=23, tm_sec=58, tm_wday=1, tm_yday=329, tm_isdst=0)
      # 传入时间戳
      specific_time = time.localtime(1633045320)
      print(specific_time)
      #time.struct_time(tm_year=2021, tm_mon=10, tm_mday=1, tm_hour=7, tm_min=42, tm_sec=0, tm_wday=4, tm_yday=274, tm_isdst=0)

      需要导入

      from datetime import datetime

      datetime.strptime(string, format)

      功能:将字符串解析为datetime对象

      from datetime import datetime
      random_date=datetime.strptime('2025-10-10', '%Y-%m-%d')#内部存储为datetime对象
      print(random_date)#2025-10-10 00:00:00
      print(repr(random_date))#datetime.datetime(2025, 10, 10, 0, 0)

      random_date=datetime.strptime('2025-10-10', '%Y-%m-%d')解析为datetime对象,为什么打印出来是2025-10-10 00:00:00而不是datetime.datetime(2025, 10, 10, 0, 0) ?

      补充:

      当在Python中执行:

      start = datetime.strptime("2020-01-01", "%Y-%m-%d")
      print(start)#2020-01-01 00:00:00

      实际在Python解释器中的显示

      >>> from datetime import datetime
      >>> start = datetime.strptime("2020-01-01", "%Y-%m-%d")
      >>> start
      datetime.datetime(2020, 1, 1, 0, 0)  # 这是实际的repr表示

      两种表示方法的区别

      1. repr() 表示法(开发者视图)

      datetime.datetime(2020, 1, 1, 0, 0)
      • 这是Python对象的正式字符串表示
      • 通过 repr() 函数或直接在解释器中输入变量名获得
      • 显示完整的构造函数调用格式
      • 主要用于调试和开发

      2. str() 表示法(用户视图)

      2020-01-01 00:00:00
      • 这是对象的友好字符串表示
      • 通过 print() 函数或 str() 函数获得
      • 显示为易读的日期时间格式
      • 主要用于输出和显示

      datetime对象.strftime(format)

      功能:将datetime对象格式化为字符串

      from datetime import datetime
      # 将字符串解析为datetime对象
      random_date=datetime.strptime('2025-10-10', '%Y-%m-%d')
      print(repr(random_date))#datetime.datetime(2025, 10, 10, 0, 0)
      #datetime对象格式化为字符串
      print(random_date.strftime('%Y-%m-%d'))#2025-10-10
      # ----------------------------------------------------------------
      #当前时间对象
      now=datetime.now()
      print(now)#2025-11-25 15:44:50.951160
      print(now.strftime("%Y-%m-%d %H:%M:%S"))#2025-11-25 15:45:27
      print(now.strftime("%Y年%m月%d日"))#2025年11月25日

      需要导入from datetime import timedelta

      功能:创建时间间隔对象

      from datetime import timedelta
      # 创建时间间隔
      td1 = timedelta(days=5)                    # 5天
      td2 = timedelta(hours=3)                   # 3小时
      td3 = timedelta(weeks=2, days=3)           # 2周3天 = 17天
      td4 = timedelta(days=1, hours=2, minutes=30, seconds=15, microseconds=500)
      print(td1)  # 5 days, 0:00:00
      print(td3)  # 17 days, 0:00:00
      print(td4)  # 1 day, 2:30:15.000500
      # 访问属性
      print(td4.days)#1
      # 计算总时间(以不同单位)
      print(f"总秒数: {td4.total_seconds()}")  # 198045.0
      print(f"总分钟数: {td4.total_seconds() / 60}")  # 3300.75
      print(f"总小时数: {td4.total_seconds() / 3600}")  # 55.0125
      # 参数范围:
      # weeks, days, hours, minutes, seconds
      # milliseconds, microseconds
      # 所有参数都是可选的,默认为0

      • time模块:适合系统级时间操作、性能测试和简单的时间戳处理
      • datetime模块:适合复杂的日期时间操作、计算和格式化
      • timedelta类:用于时间间隔计算,与datetime配合使用

      在实际开发中,通常根据具体需求选择合适的模块:

      • 性能测试和程序暂停使用 time
      • 大部分日期时间处理使用 datetime
      • 需要时间间隔计算时使用 timedelta

      到此这篇关于python常用模块之时间模块(time,datetime,timedelta)详解的文章就介绍到这了,更多相关python时间模块内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!

      您可能感兴趣的文章:

      • 一文带你吃透Python中的日期时间模块
      • python使用timeit时间模块
      • python中时间模块的基本使用教程
      • Python日期时间模块datetime详解与Python 日期时间的比较,计算实例代码
      • Python的时间模块datetime详解
      • 详解python时间模块中的datetime模块
      • Python时间模块datetime、time、calendar的使用方法
      • python内置模块datetime.timedelta计算时间间隔示例代码
      • Python中的DateTime和TimeDelta详解

      站内搜索