处理保存特定课程日期的应用程序,即每个创建课程的结束日期。
此服务接受MM / dd / yyyy格式的日期。
例如,
course = {
"courseName": "My Course",
"endDate": "01/10/2015"
}
哪个应该被解析为" 01/10 / 2015"即" 2015年1月10日"在服务中。
但是,有些情况下收到的日期格式错误,即dd / MM / yyyy
course = {
"courseName": "My Course",
"endDate": "13/01/2015"
}
被解析为" 01/01/2016"即" 2016年1月1日"。
上述解析使用
完成String d = "13/01/2015";
SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy");
Date date = format.parse(d);
我的问题是,是否有办法通过扭转错误解析的日期来恢复原始日期?
我尝试使用模式" dd / MM / yyyy"解析它,但我得到了#34; 01/01/2016"。
答案 0 :(得分:3)
问题是,一旦你有了解析后的价值" 01/01/2016",你怎么知道原来的价值是否实际上是" 01/01 / 2016"或者你的错误" 13/01/2015"。你没有。
我可以建议的是,为了将来参考的是setLenient(false)
,SimpleDateFormat
会在遇到类似的内容时抛出适当的ParseException
。
String d = "13/01/2015";
SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy");
format.setLenient(false)
Date date = format.parse(d); // throws ParseException