【发布时间】:2015-08-22 16:28:45
【问题描述】:
我有这个代码,我系统的默认时区是 PDT。时区转换后,finalDate 以 PDT 显示时间。如何让它在“亚洲/新加坡”中显示 finalDate?
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);
【问题讨论】:
-
java.time 框架运行良好。问题是您对
java.util.Date的工作方式有误解。请参阅 Codebender 的 correct Answer。为了向其他读者澄清,尽量避免使用旧的 java.util.Date 和 .Calendar 类。 java.time 类取代了那些旧的麻烦类。在这个问题的代码中,不需要从 java.time 转换为 java.util.Date 的最后一行,除非需要与其他一些尚不知道新 java.time 类型的代码进行互操作。