开发一个应用程序,保存特定类(class)的日期,即创建的每门类(class)的结束日期。
此服务接受 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”,即“01 Jan 2016”。
上面的解析是使用完成的
String d = "13/01/2015";
SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy");
Date date = format.parse(d);
我的问题是,有没有办法通过反转错误解析的日期来恢复原始日期?
我尝试使用模式“dd/MM/yyyy”解析它,但得到“01/01/2016”。
最佳答案
问题是,一旦您获得了解析值“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
关于java - 日期解析出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33828324/