【问题标题】:JSON date parser, posting as day lessJSON日期解析器,发布为少天
【发布时间】:2013-07-02 21:17:28
【问题描述】:

我在发布 java.util.Date 字段时遇到球衣休息服务问题。

这里是 JSON 格式的服务请求。

{
"fromDate":"2012-06-30",
"toDate":"2013-07-01"
}

当同一个 JSON 对象映射到 java 对象时。日期转换为

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<search>
  <fromDate>2012-06-29T19:00:00-05:00</fromDate>
  <toDate>2013-06-30T19:00:00-05:00</toDate>
</search>

任何想法或任何线索为什么会发生这种情况。提前致谢。

【问题讨论】:

    标签: java json rest date jersey


    【解决方案1】:

    日期代表同一时刻。第一个是 UTC,第二个是 UTC 减去 5 小时。

    2012-06-29T19:00:00-05:00
    

    是 6 月 29 日 19:00,时区比 UTC 晚 5 小时。

    所以如果你用 UTC 时间表示这个日期,你必须加上 5 小时,这会返回日期

    2012-06-30T00:00:00
    

    【讨论】:

    • 感谢您的回答。您能分享使用日期的最佳做法吗?
    • @javabie 最佳实践是:“全局工作/思考/存储,本地显示”。您在数据库中的大部分业务逻辑和存储应该是UTC/GMT。通常,您仅在向用户显示(在应用程序界面中)时转换为分区日期时间,否则用户会影响业务逻辑。就像“今天的销售数据报告”一样,其中“今天”是指用户自己的本地时区。并且在处理日期时间工作时总是考虑时区,就像在处理文本文件时应该总是考虑字符编码一样。
    【解决方案2】:

    时代应该是一个提示。它们相隔 5 小时,所以这是一个时区调整问题。 JSON 时间被解释为 UTC,然后调整为 EDT。

    【讨论】:

      猜你喜欢
      • 2023-03-19
      • 2021-06-27
      • 1970-01-01
      • 2012-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多