目录:
专门用于处理日期和时间,提供了一系列类(如 date、time、datetime、timedelta)来创建、操作、格式化和计算日期时间对象,是进行时间相关编程的基础工具。
from datetime import datetime
# 创建一个表示 2023年10月1日 12点30分45秒 的datetime对象
specific_dt = datetime(2023, 10, 1, 12, 30, 45)
print(specific_dt) # 输出:2023-10-01 12:30:45
from datetime import datetime
date_string = "2023-10-01 12:30:45"
date_format = "%Y-%m-%d %H:%M:%S"
parsed_dt = datetime.strptime(date_string, date_format)
print(parsed_dt) # 输出:2023-10-01 12:30:45
这里的格式字符串 %Y-%m-%d %H:%M:%S 必须与待解析的字符串格式严格匹配。常用格式符包括:%Y(四位年份)、%m(两位月份)、%d(两位日期)、%H(24小时制小时)、%M(分钟)、%S(秒)。
from datetime import date, time, datetime
d = date(2023, 10, 1) # 创建一个日期对象
t = time(12, 30, 45) # 创建一个时间对象
combined_dt = datetime.combine(d, t)
print(combined_dt) # 输出:2023-10-01 12:30:45
from datetime import datetime
# 使用一个特定的时间戳(例如:1609459200 代表 2021-01-01 00:00:00 UTC)
specific_timestamp = 1609459200
specific_dt = datetime.fromtimestamp(specific_timestamp)
print(specific_dt) # 输出对应的本地日期时间,例如:2021-01-01 08:00:00(北京时间)
from datetime import datetime
# 获取当前时间
now = datetime.now()
# 格式化为 "YYYY-MM-DD HH:MM:SS"
formatted_time = now.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_time) # 输出类似:2026-01-04 10:15:30
| 格式 | 描述 | 示例 |
|---|---|---|
| %Y | 四位数的年份 | 2026 |
| %y | 两位数的年份 | 26 |
| %m | 两位数的月份 | (01-12) 01 |
| %B | 月份的全称 | January |
| %b 或 %h | 月份的缩写 | Jan |
| %d | 两位数的日期 (01-31) | 04 |
| %A | 星期几的全称 | Sunday |
| %a | 星期几的缩写 | Sun |
| %H | 24小时制的小时 (00-23) | 14 |
| %I | 12小时制的小时 (01-12) | 02 |
| %M | 分钟 (00-59) | 30 |
| %S | 秒 (00-59) | 45 |
| %p | AM 或 PM | PM |
更多示例:
from datetime import datetime
now = datetime.now()
print("ISO 格式 (国际标准):", now.strftime("%Y-%m-%dT%H:%M:%S"))
print("中文常用格式:", now.strftime("%Y年%m月%d日 %H时%M分%S秒"))
print("美国日期格式:", now.strftime("%m/%d/%Y"))
print("欧洲日期格式:", now.strftime("%d/%m/%Y"))
print("带星期几:", now.strftime("%A, %B %d, %Y"))
print("12小时制时间:", now.strftime("%I:%M:%S %p"))
print("仅日期 (短横线):", now.strftime("%Y-%m-%d"))
print("一年中的第几天:", now.strftime("第 %j 天"))
print("带微秒的精确时间:", now.strftime("%H:%M:%S.%f"))
使用 timedelta 可以方便地进行时间间隔的加减
from datetime import datetime, timedelta
now = datetime.now()
# 加法:计算未来时间
future_time = now + timedelta(days=5, hours=2) # 5天2小时后
print(future_time)
# 减法:计算过去时间
past_time = now - timedelta(weeks=2) # 2周前
print(past_time)
# 计算两个日期之间的天数差
date1 = date(2023, 10, 5)
date2 = date(2023, 10, 10)
difference = date2 - date1
print(difference.days) # 输出: 5
常用函数列举如下:
from datetime import datetime, date, time
now = datetime.now() # 2026-01-04 21:42:58.509936
d = now.date() # 2026-01-04
t = now.time() # 21:42:58.509936
today = date.today() # 2026-01-04
↶ 返回首页 ↶