0

我有一个看起来像这样的字符串: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 个月——有点超出了我的容错能力。谁能看到我错过了什么?

谢谢!

4

1 回答 1

3

更改并参考文档以yyyy-mm-dd获取详细信息yyyy-MM-ddSimpleDateFormat

于 2013-08-18T23:35:25.207 回答