如何将日历对象转换为 ISO 8601 格式的 DateTime 字符串?

How do I convert a Calendar object to an ISO 8601 format DateTime string?

我正在尝试在 Google AMP schema object 中输出 datePublished 字段。例如:

<script type="application/ld+json">
  {
      ...
      "datePublished": "2005-10-22T00:00Z",
      ...
  }
</script>

我的 JCR 应用程序中的 datePublished 字段在模板中呈现为 FreeMarker Calendar(例如 Oct 21, 2005 7:00:00 PM)。

如何将 Calendar 的数据类型转换为 ISO 8601 格式的 DateTime 字符串(例如 2005-10-22T00:00Z)?

使用内置的 FreeMarker string.iso_m_u。例如:

<script type="application/ld+json">
  {
      ...
      "datePublished": "${publishDate!?string.iso_m_u}",
      ...
  }
</script>

参考:Built-ins for date/time/date-time values