杰瑞科技汇

Python输出datetime对象如何格式化?

在 Python 中,datetime 模块提供了多种方式来输出和处理日期时间,以下是几种常见的输出方式,从简单到复杂:


直接打印 datetime 对象

使用 print() 直接输出 datetime 对象,默认格式为 YYYY-MM-DD HH:MM:SS.ffffff(包含微秒)。

from datetime import datetime
now = datetime.now()
print(now)
# 输出示例: 2025-10-25 14:30:45.123456

格式化输出(strftime

使用 strftime() 方法将 datetime 对象格式化为字符串,支持自定义格式。

常用格式代码

代码 含义 示例
%Y 4位年份 2025
%y 2位年份 23
%m 月份(01-12) 10
%d 日期(01-31) 25
%H 24小时制小时(00-23) 14
%I 12小时制小时(01-12) 02
%M 分钟(00-59) 30
%S 秒(00-59) 45
%f 微秒(000000-999999) 123456
%A 星期全名 Wednesday
%a 星期缩写 Wed
%B 月份全名 October
%b 月份缩写 Oct
%p AM/PM PM

示例

from datetime import datetime
now = datetime.now()
# 常见格式
print(now.strftime("%Y-%m-%d %H:%M:%S"))  # 2025-10-25 14:30:45
print(now.strftime("%Y/%m/%d %I:%M:%S %p"))  # 2025/10/25 02:30:45 PM
print(now.strftime("%d %B %Y"))  # 25 October 2025
print(now.strftime("%a, %d %b %Y %H:%M"))  # Wed, 25 Oct 2025 14:30

仅输出日期或时间

如果只需要日期或时间部分,可以通过 date()time() 方法提取。

from datetime import datetime
now = datetime.now()
# 仅日期
print(now.date())  # 2025-10-25
print(now.strftime("%Y-%m-%d"))  # 2025-10-25
# 仅时间
print(now.time())  # 14:30:45.123456
print(now.strftime("%H:%M:%S"))  # 14:30:45

输出 Unix 时间戳(秒/毫秒)

使用 timestamp() 方法获取自 1970-01-01 以来的秒数(浮点数)。

from datetime import datetime
now = datetime.now()
timestamp_seconds = now.timestamp()
timestamp_ms = int(timestamp_seconds * 1000)
print(timestamp_seconds)  # 1698237045.123456
print(timestamp_ms)       # 1698237045123

从字符串解析为 datetime

如果需要将字符串转换为 datetime 对象,使用 strptime()

from datetime import datetime
date_str = "2025-10-25 14:30:45"
dt = datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S")
print(dt)  # 2025-10-25 14:30:45

时区处理(需 pytz 或 Python 3.9+)

Python 3.9+ 内置 zoneinfo 模块支持时区:

from datetime import datetime
from zoneinfo import ZoneInfo  # Python 3.9+
# 带时区的输出
now_utc = datetime.now(ZoneInfo("UTC"))
now_shanghai = datetime.now(ZoneInfo("Asia/Shanghai"))
print(now_utc)      # 2025-10-25 06:30:45+00:00
print(now_shanghai) # 2025-10-25 14:30:45+08:00

  • 直接打印:默认格式(YYYY-MM-DD HH:MM:SS.ffffff)。
  • 格式化输出strftime() 自定义格式。
  • 仅日期/时间date()time() 方法。
  • 时间戳timestamp() 获取秒数。
  • 字符串转换strptime() 解析字符串。

根据需求选择合适的方式即可!

分享:
扫描分享到社交APP
上一篇
下一篇