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

Python 的时间处理模块 datetime 详解

💖 欢迎来到我的博客! 非常高兴能在这里与您相遇。在这里,您不仅能获得有趣的技术分享,还能感受到轻松愉快的氛围。无论您是编程新手,还是资深开发者,都能在这里找到属于您的知识宝藏,学习和成长。

🔍 博客内容包括:

  • Java核心技术与微服务:涵盖Java基础、JVM、并发编程、Redis、Kafka、Spring等,帮助您全面掌握企业级开发技术。
  • 大数据技术:涵盖Hadoop(HDFS)、Hive、Spark、Flink、Kafka、Redis、ECharts、Zookeeper等相关技术。
  • 开发工具:分享常用开发工具(IDEA、Git、Mac、Alfred、Typora等)的使用技巧,提升开发效率。
  • 数据库与优化:总结MySQL及其他常用数据库技术,解决实际工作中的数据库问题。
  • Python与大数据:专注于Python编程语言的深度学习,数据分析工具(如Pandas、NumPy)和大数据处理技术,帮助您掌握数据分析、数据挖掘、机器学习等技术。
  • 数据结构与算法:总结数据结构与算法的核心知识,提升编程思维,帮助您应对大厂面试挑战。

🌟 我的目标:持续学习与总结,分享技术心得与解决方案,和您一起探索技术的无限可能!在这里,我希望能与您共同进步,互相激励,成为更好的自己。

📣 欢迎订阅本专栏,与我一起在这个知识的海洋中不断学习、分享和成长!💻🚀


📍版权声明:本博客所有内容均为原创,遵循CC 4.0 BY-SA协议,转载请注明出处。

目录

1. 模块简介

2. datetime 模块的主要类

2.1 datetime.date

2.2 datetime.time

2.3 datetime.datetime

2.4 datetime.timedelta

2.5 datetime.tzinfo

3. 日期与时间的获取和格式化

3.1 获取当前日期和时间

3.2 日期与时间的格式化

4. 日期与时间的运算

4.1 日期加减运算

4.2 时间差计算

5. 时间与其他格式的转换

5.1 时间戳与 datetime 的转换

5.2 字符串与 datetime 的转换

6. 时区处理

6.1 设置时区

6.2 时区转换


1. 模块简介

datetime 模块是 Python 中用于处理日期和时间的标准库,它提供了日期和时间的获取、格式化、解析、运算等功能,是开发者进行时间处理的常用工具。


2. datetime 模块的主要类

2.1 datetime.date

用于表示日期,包含年、月、日。

常用方法和属性:

from datetime import date

# 获取今天的日期
today = date.today()
print(today)  # 输出:2025-01-16

# 创建一个日期对象
d = date(2023, 5, 20)
print(d.year, d.month, d.day)  # 输出:2023 5 20

 

2.2 datetime.time

用于表示一天中的时间,包含时、分、秒和微秒。

常用方法和属性:

from datetime import time

# 创建时间对象
t = time(14, 30, 45)
print(t.hour, t.minute, t.second)  # 输出:14 30 45

2.3 datetime.datetime

表示日期和时间,包含年、月、日、时、分、秒、微秒。

常用方法和属性:

from datetime import datetime

# 获取当前日期时间
now = datetime.now()
print(now)  # 输出:2025-01-16 14:30:45.123456

# 创建一个日期时间对象
dt = datetime(2024, 12, 31, 23, 59, 59)
print(dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second)

2.4 datetime.timedelta

表示时间间隔,用于日期和时间的加减运算。

常用方法和属性:

from datetime import timedelta

# 创建时间间隔
delta = timedelta(days=5, hours=3)
print(delta)  # 输出:5 days, 3:00:00

2.5 datetime.tzinfo

用于处理时区信息。

示例:

from datetime import timezone, timedelta

# 创建一个时区对象
tz = timezone(timedelta(hours=8))  # 东八区
print(tz)  # 输出:UTC+08:00

3. 日期与时间的获取和格式化

3.1 获取当前日期和时间

from datetime import datetime

# 获取当前日期时间
now = datetime.now()
print(now)  # 输出:2025-01-16 14:30:45.123456

# 获取当前日期
today = datetime.today()
print(today.date())  # 输出:2025-01-16

3.2 日期与时间的格式化

strftime 格式化:

now = datetime.now()
formatted = now.strftime('%Y-%m-%d %H:%M:%S')
print(formatted)  # 输出:2025-01-16 14:30:45

strptime 解析:

from datetime import datetime

date_str = '2025-01-16 14:30:45'
parsed_date = datetime.strptime(date_str, '%Y-%m-%d %H:%M:%S')
print(parsed_date)  # 输出:2025-01-16 14:30:45

4. 日期与时间的运算

4.1 日期加减运算

from datetime import datetime, timedelta

now = datetime.now()

# 日期加5天
future = now + timedelta(days=5)
print(future)

# 日期减5天
past = now - timedelta(days=5)
print(past)

4.2 时间差计算

from datetime import datetime

date1 = datetime(2025, 1, 16, 14, 30)
date2 = datetime(2025, 1, 10, 12, 0)

# 计算时间差
delta = date1 - date2
print(delta.days)  # 输出:6
print(delta.total_seconds())  # 输出:540000

5. 时间与其他格式的转换

5.1 时间戳与 datetime 的转换

from datetime import datetime

# 时间戳转 datetime
timestamp = 1673798600
dt = datetime.fromtimestamp(timestamp)
print(dt)  # 输出:2023-01-16 14:30:00

# datetime 转时间戳
now = datetime.now()
print(now.timestamp())

5.2 字符串与 datetime 的转换

见第 3.2 节。


6. 时区处理

6.1 设置时区

from datetime import datetime, timezone, timedelta

# 设置 UTC 时间
utc = datetime.now(timezone.utc)
print(utc)  # 输出:2025-01-16 06:30:45+00:00

# 设置特定时区
tz = timezone(timedelta(hours=8))  # 东八区
beijing_time = utc.astimezone(tz)
print(beijing_time)  # 输出:2025-01-16 14:30:45+08:00

6.2 时区转换

from datetime import datetime, timezone, timedelta

utc = datetime(2025, 1, 16, 6, 30, tzinfo=timezone.utc)
tz_ny = timezone(timedelta(hours=-5))  # 纽约时间
ny_time = utc.astimezone(tz_ny)
print(ny_time)  # 输出:2025-01-16 01:30:00-05:00


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

相关文章:

  • 强化学习-蒙特卡洛方法
  • linux系统监视(centos 7)
  • 设计模式03:行为型设计模式之策略模式的使用情景及其基础Demo
  • GitLab集成Jira
  • 关于jwt和security
  • Google常用语法解析
  • 图论1-问题 B: 算法7-4,7-5:图的遍历——深度优先搜索
  • 博图 linucx vmware
  • css 实现自定义虚线
  • QT 通过QAxObject与本地应用程序读取Excel内容
  • 汽车故障码U100187 LIN1Communication time out 解析和处理方法
  • 【50个服务器常见端口】
  • 【Linux】sed编辑器二
  • 基于华为云车牌识别服务设计的停车场计费系统【华为开发者空间-鸿蒙】
  • ArcGIS模拟风场(流场)
  • 《AI与鸿蒙Next:建筑设计可视化的革新力量》
  • 使用AKTools本地部署AKShare财经数据接口库
  • 《零基础Go语言算法实战》【题目 4-12】找到给定集合的所有子集
  • 【CSS】 ---- CSS 实现图片随鼠标移动局部放大特效
  • VSCode代理配置导致的SSL证书验证错误及解决方案
  • Conda的一些常用命令
  • 运行fastGPT 第二步 安装宝塔面板 用于管理安装docker和其文件
  • 1.15寒假作业
  • Hooks扩展
  • 【刷题笔记】滑动窗口单调队列题目
  • 大疆最新款无人机发布,可照亮百米之外目标