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

AEM中datefield xtype完整月份日期格式设置问询

在AEM Datefield中配置完整月份格式的方法

要输出「23 September 2022」这种带完整月份名称的日期格式,核心是把日期格式符从M替换为MMMM,以下分不同场景说明配置方式:

1. 后端Java代码处理(如Sling Model)

如果是在Java层处理日期输出,使用SimpleDateFormat时,将格式字符串改为"d MMMM yyyy",同时指定英文Locale避免语言环境问题:

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

// 示例:格式化Date对象
Date date = properties.get("date", Date.class);
SimpleDateFormat fullMonthFormatter = new SimpleDateFormat("d MMMM yyyy", Locale.ENGLISH);
String formattedDate = fullMonthFormatter.format(date);

2. Dialog中配置Datefield的显示格式

在组件dialog的datefield配置里,将format属性设置为d MMMM Y,如果需要保留标准的存储格式(如yyyy-MM-dd),可以单独设置submitFormat:

<date-selector
    jcr:primaryType="nt:unstructured"
    sling:resourceType="granite/ui/components/coral/foundation/form/datefield"
    fieldLabel="发布日期"
    name="./publishDate"
    format="d MMMM Y"
    submitFormat="yyyy-MM-dd"/>

3. HTL模板中直接格式化

在HTL里使用内置的格式化功能,指定格式和Locale:

<div class="date">${properties.publishDate @ format='d MMMM yyyy', locale='en'}</div>

关键注意点

  • 格式符区分大小写:M对应数字月份,MM是两位数字,MMM是缩写月份,MMMM才是完整月份名称
  • 必须指定Locale(如Locale.ENGLISH或HTL中的locale='en'),否则会根据服务器默认语言环境输出,可能得到非英文的月份名称

内容的提问来源于stack exchange,提问作者Deepak krishna R

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 23:10:54