将GMT转换为BST Java

时间:2015-03-09 10:28:28

标签: java timezone

我的yyyy/mm/dd hh:mm:ss格式的日期格式为GMT。我想将日期从GMT格式转换为BST时间。最简单的方法是什么?

1 个答案:

答案 0 :(得分:3)

使用Java 8,最简单的方法可能是:

  • 将日期解析为LocalDateTime
  • 使用它来创建使用GMT时区的ZonedDateTime
  • 将时区更改为BST
  • 获取该新日期的LocalDateTime

示例示例:

String date = "2015/03/09 10:32:00";
LocalDateTime gmt = LocalDateTime.parse(date, DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss"));
ZonedDateTime instant = ZonedDateTime.of(gmt, ZoneId.of("GMT"));
LocalDateTime bst = instant.withZoneSameInstant(ZoneId.of("Europe/London")).toLocalDateTime();
System.out.println(bst);

例如,如果您将月份更改为7月,则应按预期看到一小时的偏移量。

(我认为BST是英国的夏令时 - 它也可能是孟加拉国标准时间:一般来说,最好使用时区的全名来避免含糊不清)。