Python 中 time 与 datetime 模块的时间处理详解

01-15 9101阅读

在 Python 编程中,处理时间是一项常见且重要的任务。Python 提供了 timedatetime 模块来帮助我们轻松应对各种时间相关的操作。

time 模块

time 模块主要用于处理与时间戳、时间格式转换等底层相关的操作。

获取当前时间戳

时间戳是指格林威治时间 1970 年 01 月 01 日 00 时 00 分 00 秒起至现在的总秒数。

import time

current_timestamp = time.time()
print(current_timestamp)

时间戳与结构化时间的转换

结构化时间是一个包含年、月、日等信息的元组。

import time

# 时间戳转结构化时间
timestamp = 1689427200
struct_time = time.localtime(timestamp)
print(struct_time)

# 结构化时间转时间戳
new_timestamp = time.mktime(struct_time)
print(new_timestamp)

格式化时间输出

我们可以将结构化时间格式化为指定的字符串形式。

import time

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

datetime 模块

datetime 模块比 time 模块更高层次,提供了更丰富的日期和时间操作功能。

创建日期时间对象

from datetime import datetime

# 获取当前日期时间
now = datetime.now()
print(now)

# 创建指定日期时间
specific_time = datetime(2024, 7, 10, 12, 30, 0)
print(specific_time)

日期时间的运算

from datetime import datetime, timedelta

now = datetime.now()
# 增加 1 天
one_day_later = now + timedelta(days=1)
print(one_day_later)

# 减少 2 小时
two_hours_earlier = now - timedelta(hours=2)
print(two_hours_earlier)

日期时间的格式化与解析

from datetime import datetime

now = datetime.now()
# 格式化为字符串
formatted = now.strftime("%Y-%m-%d %H:%M:%S")
print(formatted)

# 解析字符串为日期时间对象
parsed_time = datetime.strptime("2024-07-10 14:30:00", "%Y-%m-%d %H:%M:%S")
print(parsed_time)

两者的比较与选择

time 模块更侧重于底层的时间表示(如时间戳)和简单的格式转换,适用于一些对时间处理要求较为基础的场景,比如记录程序运行时间等。而 datetime 模块提供了更面向对象的日期时间操作方式,在处理复杂的日期时间运算(如日期加减、跨时区处理等)以及与人类可读的日期时间格式交互时更加方便和直观。

在实际项目中,如果只是简单的时间戳记录或者基本的格式转换,time 模块可能就足够了。但如果涉及到大量的日期时间计算、与用户友好的日期时间展示等,datetime 模块会是更好的选择。

总结来说,timedatetime 模块各有优势,我们需要根据具体的业务需求来灵活运用它们,以实现高效、准确的时间处理。通过合理使用这两个模块,我们可以让 Python 程序在处理时间相关任务时更加得心应手。无论是开发 Web 应用记录用户操作时间,还是进行数据分析处理时间序列数据,它们都能发挥重要作用。

文章版权声明:除非注明,否则均为Dark零点博客原创文章,转载或复制请以超链接形式并注明出处。

目录[+]

Music