dateFormat 不包含解析的日期

dateFormat doesn't contain the parsed date

这是我正在做的事情:

SimpleDateFormat parserSDF = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzzz yyyy", Locale.ENGLISH);
Date dateFormat = parserSDF.parse("Mon Nov 07 00:00:00 CEST 2016");

dateFormat 应该包含 Mon Nov 07 00:00:00 CET 2016,但这是我在记录时得到的:

Sun Nov 06 23:00:00 CET 2016

为什么我会得到这个小时的差异?

谢谢。

CEST 代表中欧夏令时,比 CET 晚 1 小时,所以结果是正确的。

所以如果你选择:

Date dateFormat = parserSDF.parse("Mon Nov 07 00:00:00 CET 2016");

你会得到预期的结果。

CEST 代表中欧夏令时,与 CET 相同,但实行夏令时。使用 CET,例如:

Date dateFormat = parserSDF.parse("Mon Nov 07 00:00:00 CET 2016");

CEST = 中欧夏令时

夏令时比正常 CET 时间晚 1 小时。 11 月通常不使用夏令时。

问题可能是时区问题:

SimpleDateFormat parserSDF = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzzz yyyy", Locale.ENGLISH);
parserSDF.setTimeZone(TimeZone.getTimeZone("GMT"));
Date dateFormat = parserSDF.parse("Mon Nov 07 00:00:00 CEST 2016");

如上所示设置时区。该问题已在此处解决: Java SimpleDateFormat: an hour wrong