我有这个代码,我的系统的默认时区是 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);
A java.util.Date http://docs.oracle.com/javase/8/docs/api/java/util/Date.html对象不特定于特定时区。然而它的toString http://docs.oracle.com/javase/8/docs/api/java/util/Date.html#toString--方法应用 JVM 当前的默认时区。
您可以要求它打印特定时区的时间DateFormat http://docs.oracle.com/javase/8/docs/api/java/text/DateFormat.html例如SimpleDateFormat http://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html.
就像是,
SimpleDateFormat dateFormat = new SimpleDateFormat("hhhhMMddHHmm");
dateFormat.setTimeZone(TimeZone.getTimeZone("Asia/Singapore"));
System.out.println(dateFormat.format(finalDate));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)