将字符串转换为 ISO 日期时间格式 |自由标记

Transform a string into ISO datetime format | Freemarker

所以我得到了日期和时间,例如 17.11.2021 和 12:44。现在我想将此日期和时间转换为 Freemarker 使用的格式 (yyyy-MM-dd hh:dd:mm:ss)。但是这里的问题是我无法正确转换它。我试过:

${myDateTime?datetime.iso?string("yyyy-MM-dd HH:mm:ss")}

但这行不通。我总是收到一条错误消息。任何人都可以解释或告诉我在这种情况下的正确形成吗?

假设 myDateTime 是一个 String(并且还不是 Date 对象),并且看起来像 17.11.2021 12:44,您可以像这样将其转换为 ISO 格式:

${myDateTime?datetime("dd.MM.yyyy HH:mm")?string.iso}

上面的 myDateTime?datetime("dd.MM.yyyy HH:mm") 将字符串转换为 Date(这是一种与格式无关的表示形式),然后 ?string.isoDate 格式化为 ISO 格式。

请注意,如果 myDateTimeDate,而不是 String,它会更干净。然后你就这样做:${myDateTime?string.iso}