SimpleDateFormat类日期解析转换每次都是返回出来一月,感觉很蛋疼还找不到错误。我希望看到这篇文章的人好好看看这个日期格式转换类API,算我求你的。里面写的清清楚楚,当时学基础类的时候随便看了两眼,网课也是躺着抱着手机看的。导致今天各种找不到错误怀疑人生。
首先我的错误是这样的,乍一看好像什么都没写错,实际上实例化SimpleDateFormat传参数格式的时候需要注意大小写、符号、还有什么Locale.CHINA/ US之类的东西。
public class Test {
public static void main(String[] args) throws ParseException {
SimpleDateFormat sd = new SimpleDateFormat("yyyy-mm-dd");
Date date = sd.parse("1999-09-27");
System.out.println(date);
输出: Wed Jan 27 00:09:00 CST 1999
}
}
很明显1999-09-27 被成功的转换为了 1999-01-27。就这个错误我找了半个多小时泪奔0T_T。
最后还发现解决方案就是:“yyyy-mm-dd” 改为 “yyyy-MM-dd”。
吃一见长一智,谨记!