跳转至

datetime模块

问题137:如何获取当前时间?

答: datetime模块提供了多种获取当前时间的方法:

from datetime import datetime, date, time

# 获取当前日期和时间
now = datetime.now()
print(f"Current datetime: {now}")

# 获取当前日期
today = date.today()
print(f"Today: {today}")

# 获取当前时间
current_time = datetime.now().time()
print(f"Current time: {current_time}")

# 格式化输出
formatted = now.strftime("%Y-%m-%d %H:%M:%S")
print(f"Formatted: {formatted}")

问题138:如何格式化时间?

答: 使用strftime()方法可以格式化时间输出:

from datetime import datetime

now = datetime.now()

# 常用格式化符号
formats = {
    "%Y": "四位数年份 (2023)",
    "%m": "月份 (01-12)",
    "%d": "日期 (01-31)",
    "%H": "小时 (00-23)",
    "%M": "分钟 (00-59)",
    "%S": "秒 (00-59)",
    "%A": "星期全名 (Monday)",
    "%B": "月份全名 (January)"
}

# 示例格式化
print(now.strftime("%Y-%m-%d"))           # 2023-12-25
print(now.strftime("%H:%M:%S"))           # 14:30:45
print(now.strftime("%A, %B %d, %Y"))      # Monday, December 25, 2023

问题139:如何进行时间计算?

答: datetime模块支持时间计算操作:

from datetime import datetime, timedelta

# 创建时间对象
start_time = datetime(2023, 1, 1)
end_time = datetime(2023, 12, 31)

# 计算时间差
duration = end_time - start_time
print(f"Duration: {duration.days} days")

# 时间加减
now = datetime.now()
tomorrow = now + timedelta(days=1)
next_week = now + timedelta(weeks=1)
next_hour = now + timedelta(hours=1)

# 计算两个时间的差值
time1 = datetime(2023, 1, 1, 10, 30)
time2 = datetime(2023, 1, 1, 14, 45)
diff = time2 - time1
print(f"Difference: {diff.total_seconds() / 3600} hours")