在Python中,处理日期和时间通常使用datetime
模块。该模块提供了丰富的类和方法来操作日期和时间。按年显示多行数据,通常涉及到对日期时间数据的筛选和分组。
datetime
模块提供了直观且易于使用的API。datetime
、date
、time
等类。假设我们有一个包含日期的列表,我们想按年对这些日期进行分组并显示。
from datetime import datetime
from collections import defaultdict
# 示例数据
dates = [
datetime(2022, 1, 15),
datetime(2023, 3, 22),
datetime(2022, 5, 7),
datetime(2023, 8, 11),
datetime(2021, 11, 30)
]
# 按年分组
grouped_by_year = defaultdict(list)
for date in dates:
grouped_by_year[date.year].append(date)
# 显示结果
for year, dates_in_year in grouped_by_year.items():
print(f"Year {year}:")
for date in dates_in_year:
print(f" {date.strftime('%Y-%m-%d')}")
问题:日期格式不一致或包含无效日期。
原因:输入数据可能包含错误或不符合预期的格式。
解决方法:
try-except
块捕获并处理ValueError
异常。import re
def is_valid_date(date_str):
pattern = re.compile(r'^\d{4}-\d{2}-\d{2}$')
return bool(pattern.match(date_str))
# 示例
date_str = "2022-13-01" # 无效日期
if is_valid_date(date_str):
date_obj = datetime.strptime(date_str, '%Y-%m-%d')
else:
print("Invalid date format!")
领取专属 10元无门槛券
手把手带您无忧上云