我正在尝试使用"20/08/18 13:21:00:428"类和DateFormat格式设置模式来解析字符串"dd/MM/yy' 'HH:mm:ss:SSS"。时区设置为BST。

上面返回的日期是正确的,但是时间以小时数而不是08-13的形式返回为"Mon Aug 20 08:21:00 BST 2018"

以下代码片段显示了刚才提到的日期和时间:

    String toBeParsed = "20/08/18 13:21:00:428";
    DateFormat format = new SimpleDateFormat("dd/MM/yy' 'HH:mm:ss:SSS");
    format.setTimeZone(TimeZone.getTimeZone("BST"));
    Date parsedDate = format.parse(toBeParsed);
    System.out.println(parsedDate);


这与我的时区有关,还是我误解了这种模式?

最佳答案

BST是孟加拉国标准时间。如果要自动设置夏令时,则使用的正确时区是“欧洲/伦敦”,如果要一直设置英国夏令时,则使用“ UTC + 1”。

https://docs.oracle.com/javase/8/docs/api/java/time/ZoneId.html#SHORT_IDS

关于java - DateFormat返回错误的小时,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51931053/

10-13 01:21