【问题标题】:java.util.Date converts formatted date from EDT back to GMTjava.util.Date 将格式化日期从 EDT 转换回 GMT
【发布时间】:2017-04-06 12:56:00
【问题描述】:

我在 EDT 时区有一个格式化的日期。当我将此值存储在 java.util.Date 对象中并尝试打印或显示它时,它再次将 TimeZone 更改为我的本地时区。这发生在 gwt 客户端。

如何将时区存储在日期对象中后保持不变?

请帮忙。

【问题讨论】:

  • 我想它在这里回答了:stackoverflow.com/questions/2891361/…
  • 我已经检查了这个线程。它与 GWT 无关。 GWT 客户端支持较少数量的 util 包,因此我们无法在客户端使用许多 API。这就是为什么我想知道使用 gwt 的出路。
  • 对不起,这是我的错
  • 列出了一些不错的日期时间库here
  • 这已经在 Stack Overflow 上处理过很多很多次了。许多人解释了Date 上的toString 方法在生成字符串时应用时区,作为设计不佳的反特性。许多人建议避免使用那些已被 java.time 类取代的旧日期时间类。请在发布前彻底搜索 Stack Overflow。另外,我得到 searching for "gwt date" 给了我 801 次点击。

标签: java date gwt


【解决方案1】:

当您将日期存储到 java.util.Date 时,它​​会转换为 UTC 时区。您需要使用 SimpleDateFormat 并指定所需的时区并进行转换。请参阅以下内容进行转换。

https://www.google.co.in/amp/www.journaldev.com/696/how-to-convert-java-date-into-specific-timezone-format/amp

【讨论】:

  • 我同意,但 GWT 不支持客户端的 SimpleDateFormat 包。编译时会抛出一个错误,提示 No source code found for SimpleDateFormat 类。
  • 好的,你可以改用 DateTimeFormat 类。请参阅stackoverflow.com/questions/24054410/gwt-timezone-issue 了解 gwt 中的转换。
猜你喜欢
  • 2020-12-13
  • 2018-04-13
  • 2020-05-10
  • 2018-09-23
  • 2020-06-03
  • 1970-01-01
  • 2011-07-26
  • 1970-01-01
  • 2018-06-09
相关资源
最近更新 更多