我已经玩了近6个小时,现在看了其他问题,但似乎无法弄清楚我做错了什么,给了我这些奇怪的结果。这里是我的代码如下DateFormat.parse()给出错误的结果
String dateStr = "20171230";
StringBuilder sb = new StringBuilder();
sb.append(dateStr.subSequence(0, 4))
.append("/")
.append(dateStr.substring(4,6))
.append("/")
.append(dateStr.substring(6,8));
dateStr = sb.toString();
System.out.println("date string is " + dateStr);
DateFormat df = new SimpleDateFormat("yyyy/mm/dd");
df.setLenient(false);
Date Date = null;
try {
Date = df.parse(dateStr);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("Date is " + Date);
输出
date string is 2017/12/30
Date is Mon Jan 30 00:12:00 CST 2017
日期应该是12月30日,而不是1月30日有人能告诉我为什么发生这种情况。