我有一个看起来像这样的字符串:2013-08-18
我需要将此字符串转换为可以用来与另一个进行比较的字符串,Date
以查看两者之间已经过去了多少天。我想出了下面的代码来把它变成一个Calendar
类型,这是我的另一个变量所在的类型。但是,我得到了我不理解的不一致的结果。这是我的代码:
String prefDate = prefs.getString("last_update", "2000-01-01");
System.err.println("oncreate prefDate: " + prefDate);
SimpleDateFormat df = new SimpleDateFormat("yyyy-mm-dd");
Date date = new Date();
date = df.parse(prefDate);
Calendar last_update = Calendar.getInstance();
last_update.setTime(date);
Date verify = new Date(last_update.getTimeInMillis());
System.err.println("verify: " + verify);
输出如下所示:
oncreate prefDate: 2013-08-18
verify: Fri Jan 18 00:08:00 MST 2013
我并不特别担心两个输出之间的格式差异。但显然错误的是,所有这一切的结果都推迟了 8 个月——有点超出了我的容错能力。谁能看到我错过了什么?
谢谢!