我有一个看起来像这样的字符串: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个月后出现偏差-超出了我的容错范围。谁能看到我想念的东西?
谢谢!
最佳答案
将yyyy-mm-dd
更改为yyyy-MM-dd
并参考SimpleDateFormat
文档以获取详细信息