欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 旅游 > Python 的时间处理模块 datetime 详解

Python 的时间处理模块 datetime 详解

2025/2/22 2:16:07 来源:https://blog.csdn.net/weixin_45710998/article/details/145186601  浏览:    关键词: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 datetimedate_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, timedeltanow = datetime.now()# 日期加5天
future = now + timedelta(days=5)
print(future)# 日期减5天
past = now - timedelta(days=5)
print(past)

4.2 时间差计算

from datetime import datetimedate1 = 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, timedeltautc = 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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词