我必须将UTC
时间戳数据转换为EST
时区。下面的代码在时区差为-5Hrs
时工作正常,但是当我给UTC
的时间像-2018-04-15T21:27:31.000Z
时,它输出为2018-04-15 16:27:31 -0500
,这是不正确的。输出应为2018-04-15 17:27:31 -0400
。它总是减去-5hrs
。
DateFormat utcFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.000'Z'");
utcFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
DateFormat estFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z");
estFormat.setTimeZone(TimeZone.getTimeZone("EST"));
try {
String date1 = estFormat.format(utcFormat.parse("2018-04-15T21:27:31.000Z"));
System.out.println("est time : "+date1);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
答案 0 :(得分:1)
您似乎希望时区速记名为“ EST”遵守夏时制更改规则。没有。 “ EST”是时区的名称,该时区是一年中的任意时间。
要获得符合夏令时规则的时区定义,最好使用使用这些时区的主要城市的名称。
根据您的情况,尝试“美国/纽约”