如何在Grafana状态历史仪表板将日期转为「日 月份」格式?
Grafana状态历史仪表板日期格式转换(MM/DD → 日 月份)解决方案
方法1:数据源层面直接转换(最稳定)
如果日期是从数据库查询得到的,直接在SQL语句中转换格式,返回目标格式的字符串:
- MySQL:使用
DATE_FORMAT和STR_TO_DATE转换
需确保MySQL服务的本地化设置为中文,或在会话中执行SELECT DATE_FORMAT(STR_TO_DATE(your_date_column, '%m/%d'), '%d %M') AS formatted_date FROM your_tableSET lc_time_names = 'zh_CN'; - PostgreSQL:使用
to_date和to_char转换
需设置数据库时区/本地化支持中文月份名称SELECT to_char(to_date(your_date_column, 'MM/DD'), 'DD FMMonth') AS formatted_date FROM your_table
方法2:面板字段自定义JavaScript格式化
针对状态历史面板(如State Timeline),直接在字段格式化中用代码处理:
- 编辑目标面板,找到需要转换的日期字段
- 点击「Format」选项,选择「Custom」
- 在输入框中填入以下JavaScript代码:
return moment(value, 'MM/DD').locale('zh-cn').format('DD MMMM'); - 保存面板后即可生效(需确保Grafana版本支持moment.js,新版本默认内置)
方法3:修正Transform+Override的用法(针对字符串转日期后格式化)
如果之前操作Transform/Override未生效,大概率是未先将字符串转为日期类型:
- 添加「Convert field type」Transform:
- 选择目标日期字段,将类型从
String转为Date - 日期格式填写
MM/DD,确保匹配原字符串格式
- 选择目标日期字段,将类型从
- 添加Override规则:
- 选择目标字段,设置「Field format」为「Date/Time」
- 自定义格式字符串填写
DD MMMM
- 进入Grafana全局设置(管理员权限),将语言切换为「简体中文」,确保月份显示为中文名称
内容的提问来源于stack exchange,提问作者Laster
相关产品推荐
相关产品推荐

