python3时间strptime如何逆变换?

strptime将字符串解析为datetime对象,strftime则将其格式化为字符串,二者互为逆操作,需保持格式代码一致。

Python 中 strptime 是将时间字符串解析为 datetime 对象的过程。它的“逆变换”是指将 datetime 对象重新格式化为字符串,这个操作使用的是 strftime 方法。

strptime 与 strftime 的对应关系

strptime:string parse time,把字符串转成 datetime 对象。

from datetime import datetime
dt = datetime.strptime("2025-05-20 13:30:45", "%Y-%m-%d %H:%M:%S")

strftime:string format time,把 datetime 对象转回字符串。

time_str = dt.strftime("%Y-%m-%d %H:%M:%S")
print(time_str) # 输出: 2025-05-20 13:30:45

常用格式化代码对照

确保你在 strftime 中使用的格式字符串与 strptime 一致,才能正确还原:

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

示例:完整逆变换流程

from datetime import datetime

# 原始时间字符串
time_str = "2025-05-20 13:30:45"

# strptime: 字符串 → datetime
dt = datetime.strptime(time_str, "%Y-%m-%d %H:%M:%S")

# strftime: datetime → 字符串(逆变换)
reversed_str = dt.strftime("%Y-%m-%d %H:%M:%S")
print(reversed_str) # 输出: 2025-05-20 13:30:45

基本上就这些。只要记住:strptime 是解析,strftime 是格式化输出,两者互为反向操作。不复杂但容易忽略大小写和格式匹配。