我正在尝试使用"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/