java - 日期转换: error with time

标签 java date-format

我从服务器获得了格式为 E, dd MMM yyyy HH:mm:ss Z 的日期,其中时区为 +0200

我使用自己的格式 yyyy-MM-dd HH:mm:ss 解析它

myFormat.format(serverFormat.parse(dateString));

我弄错了时间:现在是一小时前。因此,如果我在转换中得到 10:00,我就会得到 09:00。为什么?

最佳答案

我认为这里的问题是 DST - 夏令时。标准时间为冬季。现在是夏天,所以有1个小时的时差。 您使用的时区转换语法 +0200 不支持也不支持夏令时,因为它取决于国家/地区。

您应该使用时区定义的区域设置特定语法,例如欧洲/阿姆斯特丹而不是+0100。另外看看TimeZone类的API:

  • inDaylightTime(日期日期)
  • useDaylightTime()

关于java - 日期转换: error with time,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12235375/

相关文章:

java - 如何解析 new Date().toString() 的输出

java - 无法解析日期异常

mysql - 按月和年分组

java - java中的String有长度限制吗?

java - 通过 API 进行 Storm Netty 传输

javascript - NodeJS 日期格式不起作用

java - 如何转换序数格式的日期 1st March 1994?

java - Android如何从TextView获取String到String

java - 2.1 破解编码面试中的垃圾收集

Java JPanel JFrame 获取高度和宽度