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
这是我正在做的事情:
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