Skip to content

Datetime模块

datetime 模块

简介

datetime 是 Python 标准库中用于处理日期和时间的模块。

它提供了多种类和函数,用于处理日期、时间、时间间隔等操作,使得日期和时间的处理更加方便和灵活。

应用场景

  • 作为日志信息的内容输出
  • 计算某个功能的执行时间
  • 用日期命名一个日志文件的名称
  • 生成随机数(时间是不会重复的)

获取当前日期时间

  • datetime.now():获取当前日期和时间

    from datetime import datetime
    
    current_datetime = datetime.now()
    print("当前时间:", current_datetime)
    

格式化日期和时间

  • 使用 strftime() 方法可以将 datetime 对象格式化为自动以的字符串格式。
from datetime import datetime

current_datetime = datetime.now()
date = current_datetime.strftime("%Y-%m-%d %H:%M:%S")
print(f"格式化日期时间:{date}")

解析日期和时间

  • 使用 strptime() 函数可以将字符串解析为 datetime 对象
from datetime import datetime

date = "2023-08-08 15:30:00"
datetime = datetime.strptime(date, "%Y-%m-%d %H:%M:%S")
print("Datetime:", datetime)

计算日期间隔

  • 使用 timedelta 类可以进行日期间隔的计算

    from datetime import timedelta, datetime
    
    date1 = datetime(2023, 1, 1)
    date2 = datetime(2023, 7, 7)
    date_diff = date2 - date1
    print("Date Difference:", date_diff)
    
    current_datetime = datetime.now()
    # 使用 timedelta 计算未来的日期
    future_date = current_datetime + timedelta(days=30)
    print("Future Date:", future_date)
    

比较日期

  • 可以直接比较 datetime 对象来判断日期的先后关系。

    from datetime import  datetime
    
    date1 = datetime(2023, 1, 1)
    date2 = datetime(2023, 8, 8)
    if date1 < date2:
        print("date1 is earlier than date2")
    elif date1 > date2:
        print("date1 is later than date2")
    else:
        print("date1 and date2 are the same")
    

获取日期和时间的部分信息

  • 可以使用 yearmonthdayhourminutesecond 等属性获取日期和时间的部分信息。

    from datetime import datetime
    
    current_datetime = datetime.now()
    year = current_datetime.year
    month = current_datetime.month
    day = current_datetime.day
    hour = current_datetime.hour
    minute = current_datetime.minute
    second = current_datetime.second
    
    print(f"Year: {year}, Month: {month}, Day: {day}")
    print(f"Hour: {hour}, Minute: {minute}, Second: {second}")