我从服务器获得了格式为 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/