这个格式化字符串 %Y%m%d_%H%M%S
是把当前时间转换成一串“没有符号”的时间戳
一、strftime
是啥?
全称:string format time
意思就是:把时间格式化为字符串!
-
str
:字符串 -
f
:format(格式化) -
time
:时间
所以 strftime()
就是:
把一个时间对象(比如 datetime.now())格式化成你想要的字符串样子
二、"%Y%m%d_%H%M%S"
是一种时间格式模板
这个模板中用了一些特定的格式代码(format codes),每一个 %字母
都代表一种时间成分。
格式代码 | 含义 | 英文原词 | 例子 |
---|---|---|---|
%Y | 年(4位) | Year | 2025 |
%m | 月(2位,01~12) | Month | 04 |
%d | 日(2位,01~31) | Day | 23 |
%H | 小时(24小时制) | Hour | 15 |
%M | 分钟 | Minute | 32 |
%S | 秒 | Second | 01 |
_ | 字符串里的分隔符(自定义的,不是格式代码) | - | _ |
三、大小写的讲究
大小写字母代表不同的内容:
字母 | 小写 vs 大写 | 含义区别 |
---|---|---|
m vs M | m : 月份;M : 分钟 | 很常错! |
h vs H | h : 12小时制;H : 24小时制 | H用的是 24 小时制 |
s vs S | s : 有些库用作秒,小写常不用;S : 秒数(00-59) | 用大写更标准 |
这些是 Python 的标准库(datetime
模块)定义的内置格式化代码。
-
不只是 Python,其实 C、Java、Go、Shell 都用类似规则(源自 C 语言标准)。
-
所以
%Y%m%d_%H%M%S
这种写法其实是一种“通用格式代码规范”。
✅ 总结一句话:
strftime("%Y%m%d_%H%M%S")
就是把时间变成形如"20250423_153201"
的字符串,方便用于命名文件或记录时间,里面的%Y %m %d %H %M %S
是一套标准时间格式代码,大小写代表不同时间单位。
这样写的优点:
-
没有斜杠、冒号这些在文件名中不合法的符号。
-
方便排序(从上到下就是年、月、日、小时、分钟、秒)
-
一眼看出文件是什么时候生成的。