将 GergorianCalendar 日期转换为 Freemarker 中的自定义日期格式

Convert GergorianCalendar date into a custom date format in Freemarker

我有一个 2018-04-30T00:00:00.000+05:30 格式的公历日期。我需要更改它的时区并将其转换为 01/07/2018 9:55 AM ET 格式。如何在 freemarker 中完成此操作?

首先在配置 FreeMarker 的地方(使用其 Java API 或通常通过 java.util.Properties),将 time_zone 配置设置设置为 EST(或将 Java 的默认时区设置为那个)和 datetime_format 配置设置为 "dd/MM/yyyy hh:mm a z"。 (您也可以像 <#setting time_zone="EST"> 一样在模板中设置它们,但这通常是一种不好的做法。)

然后,如果可以的话,在调用 FreeMarker 之前将 String 转换为 java.util.Date,以便它在数据模型中已经是 Date。但如果你不能,你也可以在模板中这样做:

${d?datetime.iso}

其中 ISO 指的是您显示的字符串使用的 ISO 8601:2004 格式。