python中的datetime库

lemon Lv4

1. 核心类介绍

  • date:处理年月日(如 2025-04-12)。
  • time:处理时分秒(如 15:30:00)。
  • datetime:结合日期和时间(如 2025-04-12 15:30:00)。
  • timedelta:表示时间间隔(如 1天2小时)。

2. 获取当前时间

1
2
3
4
5
6
7
8
9
10
from datetime import datetime

# 当前本地时间(含日期和时间)
now = datetime.now() # 2025-04-12 15:30:00.123456

# 当前日期(只含年月日)
today_date = now.date() # 2025-04-12

# 当前时间(只含时分秒)
current_time = now.time() # 15:30:00.123456

3. 创建对象

1
2
3
4
5
6
# 直接指定日期时间
dt = datetime(2025, 4, 12, 15, 30, 0)

# 从时间戳转换(1970年1月1日以来的秒数)
from datetime import datetime
dt = datetime.fromtimestamp(1681294200) # 输出:2025-04-12 15:30:00

4. 格式化与解析

  • strftime():将日期时间转为字符串。
  • strptime():将字符串转为日期时间。
1
2
3
4
5
6
# 格式化字符串(常用符号)
formatted = now.strftime("%Y-%m-%d %H:%M:%S") # 2025-04-12 15:30:00

# 解析字符串
time_str = "2025-04-12 15:30:00"
dt = datetime.strptime(time_str, "%Y-%m-%d %H:%M:%S")

常用格式符号

  • %Y:四位年份(如2025)
  • %m:月份(01-12)
  • %d:日期(01-31)
  • %H:小时(24小时制,00-23)
  • %M:分钟(00-59)
  • %S:秒(00-59)

5. 时间运算(timedelta

1
2
3
4
5
6
7
8
9
10
11
from datetime import timedelta

# 加1天
new_time = now + timedelta(days=1)

# 减2小时
new_time = now - timedelta(hours=2)

# 计算时间差
delta = new_time - now
print(delta.total_seconds()) # 输出总秒数

6. 时区处理

需安装 pytz 库:

1
2
3
4
5
6
7
8
9
from datetime import datetime
import pytz

# 创建带时区的对象
shanghai_tz = pytz.timezone("Asia/Shanghai")
dt = datetime.now(shanghai_tz) # 2025-04-12 15:30:00+08:00

# 转换时区
utc_time = dt.astimezone(pytz.UTC) # 转为UTC时间

7. 常用方法

  • replace():修改日期时间。
    1
    new_dt = now.replace(year=2026, hour=10)
  • weekday():返回星期几(0=周一,6=周日)。
  • isoweekday():返回星期几(1=周一,7=周日)。

总结

  • 创建对象:用 datetime()date()time() 直接定义。
  • 格式化strftime() 转字符串,strptime() 解析字符串。
  • 运算:用 timedelta 加减时间。
  • 时区:通过 pytz 处理不同时区。
  • 标题: python中的datetime库
  • 作者: lemon
  • 创建于 : 2025-04-12 21:50:30
  • 更新于 : 2025-04-12 21:52:54
  • 链接: https://lemon2003.github.io/post/20250412215030.html
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论