在将数据转换为字符串时,以下代码的行为不符合预期,并返回到java 7下的日期:
final long epochTime = 1489669024142L;
String pattern = "ddMMMYY HH:mm";
final SimpleDateFormat format = new SimpleDateFormat(pattern, Locale.ENGLISH);
final Date inputDate = new Date(epochTime);
final String date1 = format.format(inputDate);
final Date date2 = format.parse(date1);
执行这个让我:
inputDate: Thu Mar 16 13:57:04 CET 2017
date1: 16Mar17 13:57
date2: Sun Jan 01 13:57:00 CET 2017
显然,这里有3个月的差异,而我预计会有4秒的差异。
我正在使用java.util.Date
,并且无法使用JodaTime。
知道这个巨大差异来自哪里?