You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Liquid模板中将字符串转换为日期?含09011990格式示例

解决Liquid模板中8位日期字符串转可读日期格式的问题

嘿,这个需求我之前在项目里刚好碰到过!要把09011990这种MMDDYYYY格式的8位字符串转成September 1, 1990,核心思路是先拆分字符串提取月、日、年,再拼接成Liquid能识别的标准日期格式,最后用date过滤器格式化输出。

具体实现步骤

  1. 截取日期各部分:用Liquid的slice过滤器按位置截取字符串,分别提取月份、日期、年份:

    • slice:0,2:从索引0开始取2个字符 → 月份(比如09)
    • slice:2,2:从索引2开始取2个字符 → 日期(比如01)
    • slice:4,4:从索引4开始取4个字符 → 年份(比如1990)
  2. 拼接成标准日期格式:把截取的部分拼成YYYY-MM-DD(Liquid的date过滤器对这种格式识别最稳定),再用date过滤器转成你要的样式。

完整代码示例

{% assign raw_date = "09011990" %}
{% assign month = raw_date | slice: 0, 2 %}
{% assign day = raw_date | slice: 2, 2 %}
{% assign year = raw_date | slice: 4, 4 %}

<!-- 先转成Liquid可识别的标准日期格式,再格式化 -->
{% assign readable_date = year | append: "-" | append: month | append: "-" | append: day | date: "%B %-d, %Y" %}

{{ readable_date }}

这段代码运行后会输出:September 1, 1990

补充说明

  • date过滤器的格式参数:
    • %B:输出完整的月份名称(比如September)
    • %-d:不带前导零的日期数字(比如1而不是01,如果要保留前导零用%d)
    • %Y:四位年份数字
  • 如果你要处理的原始日期可能有格式不规范的情况(比如长度不是8位),可以加个判断做容错:
{% if raw_date.size == 8 %}
  <!-- 上面的格式化代码 -->
{% else %}
  Invalid date format
{% endif %}

内容的提问来源于stack exchange,提问作者abhi920124

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:35:22