【发布时间】:2015-11-20 13:48:37
【问题描述】:
使用一个应用程序保存特定课程的日期,即创建的每门课程的结束日期。
此服务接受 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”解析它,但得到的是“01/01/2016”。
【问题讨论】:
-
通过反转什么? DateFormat 可以双向使用,但是如果您将日期错误地解析为 1 月 1 日,则除非您仍然拥有被错误解析的原始字符串,否则您将无法将其转换为应有的日期。
-
“01/10/2015”即“2015 年 1 月 1 日”您是指 2015 年 1 月 10 日还是 2015 年 10 月 1 日?
-
“01/10/2015”即“2015 年 1 月 10 日”。我的错。我已经编辑了问题。
-
@khelwood 是对的。如果您不再拥有您的字符串,您将无法在转换后恢复原始日期。您需要先检测 endDate 的格式是否正确。