Java 8 LocalDateTime到日期丢失的时区

时间:2015-08-22 16:28:46

标签: java date timezone

我有这个代码,我系统的默认时区是PDT。在时区转换后,finalDate在PDT中显示时间。如何让它在"亚洲/新加坡"?

中显示最终日期
String strDate = 201507081245;
DateTimeFormatter mx3DateFormat = DateTimeFormatter.ofPattern("yyyyMMddHHmm");
LocalDateTime localDateTime = LocalDateTime.parse(strDate, format);
Instant instant = localDateTime.atZone(ZoneId.of("Asia/Singapore")).toInstant();
Date finalDate = Date.from(instant);

1 个答案:

答案 0 :(得分:3)

java.util.Date对象并非特定于特定时区。然而,它的toString方法应用了JVM的当前默认时区。

您可以要求它使用DateFormat SimpleDateFormat打印特定时区的时间。

类似的东西,

    SimpleDateFormat dateFormat = new SimpleDateFormat("hhhhMMddHHmm");
    dateFormat.setTimeZone(TimeZone.getTimeZone("Asia/Singapore"));
    System.out.println(dateFormat.format(finalDate));