java - 日期格式“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>);
解决方案
两个输入上的后缀大概是指从 UTC 偏移。
-04:00
on表示比2019-06-17-04:00
UTC 晚 4 小时。Z
on表示距2019-06-17Z
UTC 零时分秒,即 UTC 本身。TheZ
发音为“Zulu”,是 的缩写+00:00:00
。
但是,您的两个输入都是无意义的。为没有时间的日期分配偏移量是没有意义的。事实上,在某些日子,例如夏令时 (DST) 转换,一个日期可能涉及两个偏移量。
您应该向发布者报告这些值是错误的。向他们介绍报告日期时间值的 ISO 8691 标准。
推荐阅读
- powerbi - Power BI 中的条件转换数据
- javascript - 通过 viewBox 操作 svg
- docker - Docker-compose:从第三个容器中嗅探两个容器之间的包
- sql - 使用 REGEXP_SUBSTR 将值插入多个列
- salesforce - Salesforce 使用 apex 程序停用最近 3 个月未登录的 Salesforce 用户
- firebase - 托管在 Firebase 存储中的图像会触发 gmail 的垃圾邮件过滤器
- c# - 尝试在 Visual Studio Code 中创建 webapi 时出错
- c# - OledbConnection,缺少读取 600 多于服务器上的行
- laravel - 如何在 laravel 中使用与关系获取 3 个表中的数据
- excel - 保存后 - 在新工作簿中创建 2 张不带公式的副本并另存为