from datetime import datetime
1.获取当前日期和时间
now = datetime.now()
# 2025-05-31 10:56:01.468782
2.格式化日期
formatted_date = now.strftime('%Y-%m-%d %H:%M:%S')
#2025-05-31 10:57:59
3.创建特定日期和时间
specific_date = datetime(2023, 10, 1, 14, 30, 0)
#2023-10-01 14:30:00
4.日期和时间的运算 datetime 模块中的 timedelta 类可以用于日期和时间的加减运算。
one_day_later = now + timedelta(days=1)
# 输出当前日期和时间的一天后的时间
one_hour_before = now - timedelta(hours=1)
# 输出当前日期和时间的一小时前的时间
5.日期和时间的解析 使用 strptime 方法可以将字符串解析为 datetime 对象。
date_string = '2023-10-01 14:30:00'
parsed_date = datetime.strptime(date_string, '%Y-%m-%d %H:%M:%S')
print(parsed_date) # 输出解析后的日期和时间对象间
6.获取日期和时间的各个部分
date_str = '2021-06-01 12:00:00'
date_obj = datetime.strptime(date_str, '%Y-%m-%d %H:%M:%S')
print(date_obj.year)# 年
print(date_obj.month)# 月
print(date_obj.day)# 日
print(date_obj.hour)# 小时
print(date_obj.minute)# 分钟
print(date_obj.second)# 秒数
print(date_obj.microsecond)# 微秒
print(date_obj.weekday())# 星期几 0-6 0代表星期一
print(date_obj.isoweekday())# 星期几 1-7 1代表星期一
print(date_obj.date())# 日期对象
print(date_obj.time())# 时间对象
print(date_obj.ctime())# 格式化输出
print(date_obj.isoformat())# 格式化输出
print(date_obj.strftime('%Y-%m-%d %H:%M:%S.%f'))# 格式化输出
print(date_obj.strftime('%Y-%m-%d %H:%M:%S'))# 格式化输出
print(date_obj.strftime('%Y-%m-%d'))# 格式化输出
print(date_obj.strftime('%H:%M:%S'))# 格式化输出
print(date_obj.strftime('%Y%m%d%H%M%S'))# 格式化输出
print(date_obj.strftime('%Y/%m/%d %H:%M:%S'))# 格式化输出
print(date_obj.strftime('%Y年%m月%d日 %H时%M分%S秒'))# 格式化输出
7.时间差计算
date1 = datetime.strptime('2021-06-09 12:00:00', '%Y-%m-%d %H:%M:%S')
date2 =datetime.strptime('2021-06-02 11:01:00', '%Y-%m-%d %H:%M:%S')
delta = date2 - date1
print(delta.days)# 天数 间隔中的天数部分
print(delta.seconds)# 秒数 间隔中的秒数部分
print(delta.total_seconds())# 总秒数
print(str(delta))# 格式化输出
print(delta.days * 24 * 60 * 60 + delta.seconds)# 总秒数
8.日期范围生成
start_date = datetime.datetime.strptime('2021-06-01 00:00:00', '%Y-%m-%d %H:%M:%S')
end_date = datetime.datetime.strptime('2021-06-03 00:00:00', '%Y-%m-%d %H:%M:%S')
delta = datetime.timedelta(days=1)# 间隔一天
date_list = []
while start_date <= end_date:
date_list.append(start_date.strftime('%Y-%m-%d'))
start_date += delta
print(date_list)
9.日期排序
date_list = ['2021-06-02 12:00:00', '2021-06-01 12:00:00', '2021-06-03 12:00:00']
date_list.sort(key=lambda x: datetime.strptime(x, '%Y-%m-%d %H:%M:%S'))
print(date_list)
10.时间 time
from datetime import datetime, timedelta, time
time(hour=0, minute=0, second=0, microsecond=0, tzinfo=None)