您还需要为SimpleDateFormat指定时区-当前正在解析 当地时间 午夜,该 时间 以UTC上午8点结束。
TimeZone utc = TimeZone.getTimeZone("UTC");Calendar calendar = Calendar.getInstance(utc);DateFormat df = new SimpleDateFormat("dd/MM/yyyy");df.setTimeZone(utc);Date finalTime = null;try{ finalTime = df.parse("01/01/2100"); } catch (ParseException e){ e.printStackTrace();}calendar.setTime(finalTime);像以往一样,我个人建议使用Joda Time,它通常功能更强大。如果您愿意,我很乐意将您的示例翻译成Joda Time。
另外,我看到您正在返回
calendar.getTime()-这
finalTime与您计算完后立即返回一样。
最后,仅捕获
ParseException并继续进行就好像没有发生是一个非常糟糕的主意。我希望这只是示例代码,不会反映您的真实方法。同样,我假设您
实际上 将在解析其他文本-如果不是,则正如Eyal所说,您应该直接调用方法
Calendar。(或者再次使用Joda Time。)



