首页 > 解决方案 > 日期格式“2019-06-17-04:00”和“2019-06-17Z”有什么区别?“2019-06-17Z”具体指的是什么时间?

问题描述

XMLGregorianCalendar在我的 Spring Boot 应用程序中使用来定义日期范围,并在调用 REST 服务时在输入中使用相同的日期范围。但是,当我从本地调用服务时,我看到日期在 REST 输入 XML 中设置为“2019-06-17-04:00”。如果我在 Openshift 容器中运行相同的应用程序,则请求 XML 中的日期设置为“2019-06-17Z”。你能告诉我这是什么原因吗?这两种日期格式有什么区别?

XMLGregorianCalendar toDate = DatatypeFactory.newInstance().newXMLGregorianCalendar(new GregorianCalendar());
XMLGregorianCalendar fromDate = DatatypeFactory.newInstance().newXMLGregorianCalendar(<some date>);

标签: javaspring-bootdockeropenshift

解决方案


两个输入上的后缀大概是指从 UTC 偏移。

  • -04:00on表示比2019-06-17-04:00UTC 晚 4 小时。
  • Zon表示距2019-06-17ZUTC 零时分秒,即 UTC 本身。TheZ发音为“Zulu”,是 的缩写+00:00:00

但是,您的两个输入都是无意义的。为没有时间的日期分配偏移量是没有意义的。事实上,在某些日子,例如夏令时 (DST) 转换,一个日期可能涉及两个偏移量。

您应该向发布者报告这些值是错误的。向他们介绍报告日期时间值的 ISO 8691 标准。


推荐阅读