Tornado模板中如何格式化日期(不显示小时)
在Tornado模板中格式化日期(仅显示日期部分)
这个需求挺常见的,Tornado模板本身就支持对datetime对象直接用strftime方法做格式化,刚好能帮你去掉小时这类时间部分。
核心实现方法
假设你传入的mydate是Python标准库的datetime.datetime对象(这也是日常开发里最常用的场景),直接在模板里这么写就行:
{{ mydate.strftime('%Y-%m-%d') }}
这样会输出类似2024-10-05的纯日期格式,完全不会包含小时、分钟等时间信息。
可选格式调整
你可以根据需求自定义格式字符串,常用的几个参数给你列出来:
%Y:4位数字的年份(比如2024)%m:两位数字的月份(01-12)%d:两位数字的日期(01-31)%B:英文月份全称(比如October)%b:英文月份缩写(比如Oct)
举个例子,如果想输出October 05, 2024这种更友好的格式:
{{ mydate.strftime('%B %d, %Y') }}
特殊情况处理
如果你的mydate是字符串类型的日期(比如从数据库直接读出的字符串),得先在主程序里把它转换成datetime对象再传给模板,不然模板里调用strftime会报错。比如主程序里的处理代码:
from datetime import datetime # 假设原日期字符串是"2024-10-05 14:30:00" mydate_str = "2024-10-05 14:30:00" mydate = datetime.strptime(mydate_str, '%Y-%m-%d %H:%M:%S') # 再把转换后的mydate传入模板
内容的提问来源于stack exchange,提问作者Bob5421
相关产品推荐
相关产品推荐

