我有一个日期时间"20140508063630",格式为(yyyyMMddHHmmss)。我想将此时间转换为东部标准时间。我该怎么做?如果有任何API可以进行此转换,请告诉我。谢谢!
我有一个日期时间"20140508063630",格式为(yyyyMMddHHmmss)。我想将此时间转换为东部标准时间。我该怎么做?如果有任何API可以进行此转换,请告诉我。谢谢!
try {
DateFormat gmtFormat = new SimpleDateFormat();
TimeZone estTime = TimeZone.getTimeZone("EST");
gmtFormat.setTimeZone(estTime);
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
System.out.println("EST Time: " + gmtFormat.format(sdf.parse("20140508063630")));
} catch (ParseException e) {
e.printStackTrace();
}
既然您标记了问题为java-time,那么您应该得到一个java.time
的答案。
String dateAndTime = "20140508063630";
DateTimeFormatter parseFormatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
ZonedDateTime coralHarbourDateTime = LocalDateTime.parse(dateAndTime, parseFormatter)
.atOffset(ZoneOffset.UTC)
.atZoneSameInstant(ZoneId.of("America/Coral_Harbour"));
System.out.println(coralHarbourDateTime);
这将打印
2014-05-08T01:36:30-05:00[America/Coral_Harbour]
2014-05-08T02:36:30-04:00[America/Montreal]
,时区偏移量为-4而不是-5。{ String parsedDate = null;
try {
SimpleDateFormat dbDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
dbDateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
Date date = dbUtcDateFormat.parse("20140508063630");
SimpleDateFormat userDateFormat = new SimpleDateFormat(yyyyMMddHHmmss);
userDateFormat.setTimeZone(TimeZone.getTimeZone("EST"));
parsedDate = userDateFormat.format(date);
} catch (Throwable t) {
logger.warn("Date Parse Faied : ", t);
}
return parsedDate;
}