我正在使用 TimeZone.setDefault(TimeZone.getTimeZone("EST"));
来获取时区 EST,并且它对我来说工作得很好。但是有时候,由于默认的 JVM 时区设置,即使在我的项目中没有人调用此方法,我也会得到时区 EDT。
public getTimeInEST(XMLGregorianCalendar date) {
TimeZone.setDefault(TimeZone.getTimeZone("EST"));
DateFormat formatter = new SimpleDateFormat("dd MMM yyyy HH:mm:ss z");
formatter.setTimeZone(TimeZone.getTimeZone("EST"));
String newTime = formatter.format(date.toGregorianCalendar().getTime());
Date newDate = null;
try {
newDate = formatter.parse(newTime);
System.out.println("ESTDate : " + newDate)
} catch(ParseException e) {
System.out.println(e.getMessage);
}
}
有没有其他方法可以获取以东部标准时间为时区的XMLGregorianCalendar日期,而不使用TimeZone.setDefault(TimeZone.getTimeZone("EST"))
?
formatter.setTimeZone
,对吧? - Andy Turnerjava.util.Date
,java.util.Calendar
和java.text.SimpleTextFormat
)现在已经成为遗留系统,被Java.time类所取代。请参阅Oracle的教程。 - Basil Bourque