EST时间转换与夏令时间的转换是错误的
private void timeConversion() {
String s = "2016-08-29 1:40:00 AM";
DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss a", Locale.ENGLISH);
df.setTimeZone(TimeZone.getTimeZone("EST"));
Date timestamp = null;
try {
timestamp = df.parse(s);
df.setTimeZone(TimeZone.getDefault());
System.out.println(df.format(timestamp));
} catch (ParseException e) {
e.printStackTrace();
}
}发布于 2017-08-04 08:11:18
EST时区不尊重任何夏令时补偿:
TimeZone estTz = TimeZone.getTimeZone("EST");
System.out.println(estTz.useDaylightTime()); // prints 'false'这是时区EST将始终有一个-5:00小时偏移到世界协调时。
这可能是由于加拿大、Mexiko和中美洲(巴拿马)的一些地点不使用DST,而是全年使用EST。
如果您想要一个带有DST偏移量的时区,您应该使用类似US/ want或America/New York之类的东西:
TimeZone usEasternTz = TimeZone.getTimeZone("US/Eastern");
System.out.println(usEasternTz.useDaylightTime()); // prints 'true'https://stackoverflow.com/questions/39199366
复制相似问题