Java 8 LocalDateTime到日期丢失时区
我有这个代码,我的系统的默认时区是PDT。时区转换后,finalDate以PDT显示时间。我如何让它在“亚洲/新加坡”中显示最终结果 对象不是特定于特定时区的。然而,它的方法适用于JVM当前的默认时区 您可以要求它打印特定时区的时间,例如 大概Java 8 LocalDateTime到日期丢失时区,java,date,timezone,Java,Date,Timezone,我有这个代码,我的系统的默认时区是PDT。时区转换后,finalDate以PDT显示时间。我如何让它在“亚洲/新加坡”中显示最终结果 对象不是特定于特定时区的。然而,它的方法适用于JVM当前的默认时区 您可以要求它打印特定时区的时间,例如 大概 SimpleDateFormat dateFormat = new SimpleDateFormat("hhhhMMddHHmm"); dateFormat.setTimeZone(TimeZone.getTimeZone("Asia/S
SimpleDateFormat dateFormat = new SimpleDateFormat("hhhhMMddHHmm");
dateFormat.setTimeZone(TimeZone.getTimeZone("Asia/Singapore"));
System.out.println(dateFormat.format(finalDate));
java.time框架工作得非常好。问题在于您对
java.util.Date
的工作原理存在误解。请参阅Codebender提供的。为了向其他读者澄清,请尽量避免使用旧的java.util.Date和.Calendar类。time类取代了那些旧的麻烦类。在这个问题的代码中,没有必要将最后一行从java.time转换为java.util.Date,除非需要与其他一些还不知道新java.time类型的代码进行互操作。
SimpleDateFormat dateFormat = new SimpleDateFormat("hhhhMMddHHmm");
dateFormat.setTimeZone(TimeZone.getTimeZone("Asia/Singapore"));
System.out.println(dateFormat.format(finalDate));