在 Python 中,处理日期和时间格式的数据通常依赖于 datetime
模块。这个模块提供了多种方法来解析、操作和格式化日期和时间。以下是一些常见的操作示例,包括日期和时间的解析、格式化、比较、加减等。
1. 导入 datetime
模块
python">import datetime
2. 获取当前日期和时间
2.1 获取当前日期和时间
python">now = datetime.datetime.now()
print(now) # 输出: 当前日期和时间,例如:2025-01-09 14:30:15.123456
2.2 获取当前日期
python">today = datetime.date.today()
print(today) # 输出: 当前日期,例如:2025-01-09
2.3 获取当前时间
python">current_time = datetime.datetime.now().time()
print(current_time) # 输出: 当前时间,例如:14:30:15.123456
3. 创建日期和时间对象
3.1 创建日期对象
python">d = datetime.date(2025, 1, 9)
print(d) # 输出: 2025-01-09
3.2 创建时间对象
python">t = datetime.time(14, 30, 15)
print(t) # 输出: 14:30:15
3.3 创建日期时间对象
python">dt = datetime.datetime(2025, 1, 9, 14, 30, 15)
print(dt) # 输出: 2025-01-09 14:30:15
4. 格式化日期和时间
4.1 使用 strftime
格式化日期和时间
strftime
方法用于将 datetime
对象转换为指定格式的字符串。
python">now = datetime.datetime.now()# 常用格式化符号:
# %Y - 年(4位数)
# %m - 月(01-12)
# %d - 日(01-31)
# %H - 小时(00-23)
# %M - 分钟(00-59)
# %S - 秒(00-59)formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_date) # 输出: 2025-01-09 14:30:15
4.2 常见格式化符号
符号 | 说明 |
---|---|
%Y | 年(四位数) |
%m | 月(01-12) |
%d | 日(01-31) |
%H | 小时(00-23) |
%M | 分钟(00-59) |
%S | 秒(00-59) |
%a | 星期几的简写(Mon) |
%A | 星期几的全称(Monday) |
%b | 月份的简写(Jan) |
%B | 月份的全称(January) |
4.3 格式化为自定义格式
python">now = datetime.datetime.now()
formatted_date = now.strftime("%Y年%m月%d日 %H:%M:%S")
print(formatted_date) # 输出: 2025年01月09日 14:30:15
5. 解析日期字符串
5.1 使用 strptime
解析字符串为 datetime
对象
strptime
方法可以将日期字符串解析为 datetime
对象。
python">date_string = "2025-01-09 14:30:15"
date_object = datetime.datetime.strptime(date_string, "%Y-%m-%d %H:%M:%S")
print(date_object) # 输出: 2025-01-09 14:30:15
6. 日期加减操作
6.1 加减日期时间
可以使用 timedelta
对象进行日期加减操作。timedelta
表示两个日期/时间之间的差值。
python"># 当前日期
today = datetime.date.today()# 创建一个 timedelta 对象
delta = datetime.timedelta(days=5)# 日期加 5 天
new_date = today + delta
print(new_date) # 输出: 2025-01-14# 日期减 5 天
new_date = today - delta
print(new_date) # 输出: 2025-01-04
6.2 时间加减
python"># 当前时间
now = datetime.datetime.now()# 创建一个 timedelta 对象,表示 2 小时
delta = datetime.timedelta(hours=2)# 时间加 2 小时
new_time = now + delta
print(new_time) # 输出: 当前时间 + 2 小时# 时间减 2 小时
new_time = now - delta
print(new_time) # 输出: 当前时间 - 2 小时
7. 日期和时间的比较
你可以使用常规的比较操作符(<
, >
, ==
, !=
, <=
, >=
)对 datetime
对象进行比较。
python">dt1 = datetime.datetime(2025, 1, 9, 14, 30, 15)
dt2 = datetime.datetime(2025, 1, 9, 15, 30, 15)# 比较两个日期时间对象
print(dt1 < dt2) # 输出: True
print(dt1 == dt2) # 输出: False
8. 获取日期的星期几
8.1 获取星期几(数字形式)
python">today = datetime.date.today()# 获取星期几,返回 0-6 (0: Monday, 6: Sunday)
weekday = today.weekday()
print(weekday) # 输出: 3 (星期四)
8.2 获取星期几(字符串形式)
python">today = datetime.date.today()# 获取星期几的名字
day_name = today.strftime("%A")
print(day_name) # 输出: Thursday
9. 获取一个月的天数
python"># 获取 2025 年 2 月的天数
import calendardays_in_month = calendar.monthrange(2025, 2)[1]
print(days_in_month) # 输出: 28
10. 常见的日期和时间格式
-
ISO 8601 格式:
datetime
对象可以通过isoformat()
方法转换为 ISO 格式的字符串:python">now = datetime.datetime.now() iso_format = now.isoformat() print(iso_format) # 输出: 2025-01-09T14:30:15.123456
-
Unix 时间戳(自1970年1月1日起的秒数):
python">now = datetime.datetime.now() timestamp = now.timestamp() print(timestamp) # 输出: 1673253015.123456
总结
- 使用
datetime
模块可以方便地进行日期和时间的创建、格式化、解析和操作。 - 常见操作包括获取当前时间、格式化日期、日期加减、比较日期等。
strptime
和strftime
分别用于解析和格式化日期。timedelta
用于日期和时间的加减。
这些是 Python 中处理日期和时间格式数据的常见方法。如果有任何进一步的操作需求或问题,欢迎继续提问!