Pythondatetime模块详细介绍(核心模块)

Written by

in

文章目录
  • datetime.date处理日期(年、月、日)。 属性: year, month, day 常用方法: date.today(): 返回当前本地日期。 date.fromisoformat("YYYY-MM-DD"): 从字符串解析日期。 date.replace(year, month, day): 替换日期部分。 date.weekday(): 返回星期几(0=周一, 6=周日)。 date.strftime(format): 格式化日期为字符串。 datetime.time处理时间(时、分、秒、微秒)。 属性: hour, minute, second, microsecond, tzinfo(时区) 常用方法: time.replace(hour, minute, second, microsecond): 替换时间部分。 time.strftime(format): 格式化时间为字符串。 datetime.datetime处理日期和时间的组合(最常用)。 属性: year, month, day, hour, minute, second, microsecond, tzinfo 常用方法: datetime.now(tz=None): 返回当前本地日期时间。 datetime.utcnow(): 返回当前 UTC 时间。 datetime.combine(date, time): 合并日期和时间对象。 datetime.strptime(string, format): 解析字符串为日期时间。 datetime.timestamp(): 转换为 Unix 时间戳(秒)。 datetime.date(): 提取日期部分。 datetime.time(): 提取时间部分。 datetime.strftime(format): 格式化输出。 datetime.timedelta表示时间间隔(如天、秒、微秒)。 用途: 计算日期/时间的加减。 示例: future = datetime.now() + timedelta(days=7) # 7天后 datetime.tzinfo(抽象类)处理时区信息,需自定义实现。替代方案: 使用标准库 datetime.timezone(Python 3.2+)或第三方库 pytz。 datetime.timezone实现 tzinfo 的简单时区类。 示例: tz = timezone(timedelta(hours=8)) # UTC+8 时区 dt = datetime(2023, 5, 15, tzinfo=tz)
  • 符号 含义 示例 %Y 四位年份 2023 %m 两位月份(01-12) 05 %d 两位日期(01-31) 15 %H 24小时制小时(00-23) 14 %M 分钟(00-59) 30 %S 秒(00-59) 45 %f 微秒(000000-999999) 123456 %A 星期全名 Monday %a 星期缩写 Mon %B 月份全名 May %b 月份缩写 May
  • 处理时区:优先使用 timezone 或第三方库 pytz(支持 IANA 时区数据库)。 时间存储:建议用 UTC 时间存储,显示时再转换为本地时间。 性能敏感场景:考虑使用 time.monotonic() 或 time.perf_counter() 替代时间差计算。
  • from datetime import datetime, timedelta, timezone # 1. 获取当前时间(带时区) now = datetime.now(timezone.utc) # 2. 转换为北京时间 (UTC+8) tz_beijing = timezone(timedelta(hours=8)) beijing_time = now.astimezone(tz_beijing) # 3. 格式化输出 formatted = beijing_time.strftime(“%Y-%m-%d %H:%M:%S %Z”) print(f”Beijing Time: {formatted}”) # e.g., “2023-05-15 22:30:45 UTC+08:00” # 4. 计算7天后的日期 future = beijing_time + timedelta(days=7) # 5. 解析字符串时间 dt_parsed = datetime.strptime(“2023-12-31”, “%Y-%m-%d”) 通过掌握 datetime 模块,你可以高效处理绝大多数日期时间相关任务! 到此这篇关于Python datetime模块详解的文章就介绍到这了,更多相关Python datetime模块内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客! 您可能感兴趣的文章: Python时间处理模块time和datetime详解 Python中的time和datetime模块使用方法详解 Python基本知识之datetime模块详解 Python常用模块之datetime模块详解 python使用datetime模块处理日期时间及常用功能详解 python datetime模块详解 python 常用日期处理– datetime 模块的使用 python利用datetime模块计算程序运行时间问题 Python Datetime模块和Calendar模块用法实例分析 Python基于datetime或time模块分别获取当前时间戳的方法实例 python中datetime模块中strftime/strptime函数的使用
  • 目录
    • 主要类
    • 关键操作示例
      • 1. 获取当前时间
      • 2. 时间格式化与解析
      • 3. 时间计算
      • 4. 时区处理
      • 5. 获取日期/时间部分
    • 格式化符号表
      • 最佳实践
        • 完整示例

          Python 的 datetime 模块是处理日期和时间的核心库,提供了丰富的类和方法来操作日期、时间、时间间隔和时区。以下是对该模块的详细介绍:

          1. datetime.date
            处理日期(年、月、日)。

            • 属性: year, month, day
            • 常用方法:
              • date.today(): 返回当前本地日期。
              • date.fromisoformat("YYYY-MM-DD"): 从字符串解析日期。
              • date.replace(year, month, day): 替换日期部分。
              • date.weekday(): 返回星期几(0=周一, 6=周日)。
              • date.strftime(format): 格式化日期为字符串。
          2. datetime.time
            处理时间(时、分、秒、微秒)。

            • 属性: hour, minute, second, microsecond, tzinfo(时区)
            • 常用方法:
              • time.replace(hour, minute, second, microsecond): 替换时间部分。
              • time.strftime(format): 格式化时间为字符串。
          3. datetime.datetime
            处理日期和时间的组合(最常用)。

            • 属性: year, month, day, hour, minute, second, microsecond, tzinfo
            • 常用方法:
              • datetime.now(tz=None): 返回当前本地日期时间。
              • datetime.utcnow(): 返回当前 UTC 时间。
              • datetime.combine(date, time): 合并日期和时间对象。
              • datetime.strptime(string, format): 解析字符串为日期时间。
              • datetime.timestamp(): 转换为 Unix 时间戳(秒)。
              • datetime.date(): 提取日期部分。
              • datetime.time(): 提取时间部分。
              • datetime.strftime(format): 格式化输出。
          4. datetime.timedelta
            表示时间间隔(如天、秒、微秒)。

            • 用途: 计算日期/时间的加减。
            • 示例:
          future = datetime.now() + timedelta(days=7)  # 7天后
          1. datetime.tzinfo(抽象类)
            处理时区信息,需自定义实现。
            替代方案: 使用标准库 datetime.timezone(Python 3.2+)或第三方库 pytz

          2. datetime.timezone
            实现 tzinfo 的简单时区类。

          • 示例:
          tz = timezone(timedelta(hours=8))  # UTC+8 时区
          dt = datetime(2023, 5, 15, tzinfo=tz)

          from datetime import datetime
          now = datetime.now()  # 2023-05-15 14:30:45.123456

          # 日期时间 → 字符串
          s = now.strftime("%Y-%m-%d %H:%M:%S")  # "2023-05-15 14:30:45"
          # 字符串 → 日期时间
          dt = datetime.strptime("2023-05-15", "%Y-%m-%d")  # 时间部分默认为 00:00:00

          from datetime import timedelta
          # 加减时间
          tomorrow = now + timedelta(days=1)
          last_hour = now - timedelta(hours=1)
          # 计算时间差
          diff = tomorrow - now
          print(diff.total_seconds())  # 86400.0 秒

          from datetime import timezone, timedelta
          # 创建 UTC+8 时区
          tz_beijing = timezone(timedelta(hours=8))
          dt_local = datetime(2023, 5, 15, 14, 30, tzinfo=tz_beijing)
          # 转换为 UTC 时间
          dt_utc = dt_local.astimezone(timezone.utc)  # 2023-05-15 06:30:00+00:00

          date_part = now.date()  # 返回 date 对象
          time_part = now.time()  # 返回 time 对象
          year = now.year        # 2023

          符号 含义 示例
          %Y 四位年份 2023
          %m 两位月份(01-12) 05
          %d 两位日期(01-31) 15
          %H 24小时制小时(00-23) 14
          %M 分钟(00-59) 30
          %S 秒(00-59) 45
          %f 微秒(000000-999999) 123456
          %A 星期全名 Monday
          %a 星期缩写 Mon
          %B 月份全名 May
          %b 月份缩写 May

          1. 处理时区
            优先使用 timezone 或第三方库 pytz(支持 IANA 时区数据库)。
          2. 时间存储
            建议用 UTC 时间存储,显示时再转换为本地时间。
          3. 性能敏感场景
            考虑使用 time.monotonic()time.perf_counter() 替代时间差计算。

          from datetime import datetime, timedelta, timezone
          # 1. 获取当前时间(带时区)
          now = datetime.now(timezone.utc)
          # 2. 转换为北京时间 (UTC+8)
          tz_beijing = timezone(timedelta(hours=8))
          beijing_time = now.astimezone(tz_beijing)
          # 3. 格式化输出
          formatted = beijing_time.strftime("%Y-%m-%d %H:%M:%S %Z")
          print(f"Beijing Time: {formatted}")  # e.g., "2023-05-15 22:30:45 UTC+08:00"
          # 4. 计算7天后的日期
          future = beijing_time + timedelta(days=7)
          # 5. 解析字符串时间
          dt_parsed = datetime.strptime("2023-12-31", "%Y-%m-%d")

          通过掌握 datetime 模块,你可以高效处理绝大多数日期时间相关任务!

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

          您可能感兴趣的文章:

          • Python时间处理模块time和datetime详解
          • Python中的time和datetime模块使用方法详解
          • Python基本知识之datetime模块详解
          • Python常用模块之datetime模块详解
          • python使用datetime模块处理日期时间及常用功能详解
          • python datetime模块详解
          • python 常用日期处理– datetime 模块的使用
          • python利用datetime模块计算程序运行时间问题
          • Python Datetime模块和Calendar模块用法实例分析
          • Python基于datetime或time模块分别获取当前时间戳的方法实例
          • python中datetime模块中strftime/strptime函数的使用

          站内搜索