String DATE_FORMAT = "`";
Object value = null;
String date = "2014-02-02";
try {
value = new SimpleDateFormat(DATE_FORMAT).parse(date);
System.out.println(value);
} catch (ParseException e) {
System.out.println(e.getMessage());
}
正如我在java文档中看到的那样,这个DATE_FORMAT将避免解释,也许我没有正确理解它。
所以我做错了什么?
答案 0 :(得分:2)
我想你提到这个:
日期和时间格式由日期和时间模式字符串指定。 在日期和时间模式字符串中,从“A”到“Z”的不带引号的字母 从'a'到'z'被解释为代表的模式字母 日期或时间字符串的组成部分。可以使用引用文本 单引号(')以避免解释。 “''代表单身 引用。不解释所有其他字符;他们只是被复制了 在格式化期间输入到输出字符串或与输入匹配 解析时的字符串。
这意味着您可以避免解释模式的文本,为您要避免的部分添加单引号。
例如,如果我使用文本获取字符串日期,我希望不要将其解释为日期的一部分,我可以执行以下操作:
SimpleDateFormat df = new SimpleDateFormat("'mydate' yyyy-MM-dd HH:mm:ss");
try {
df.parse("mydate 2014-04-01 12:30:00");
} catch (ParseException e) {
e.printStackTrace();
}
这不会给出任何例外。另一方面,这将:
SimpleDateFormat df = new SimpleDateFormat("'mydate' yyyy-MM-dd HH:mm:ss");
try {
df.parse("mydates 2014-04-01 12:30:00"); //check the additional s
} catch (ParseException e) {
e.printStackTrace();
}
简而言之,我认为你错过了解释规范。
答案 1 :(得分:1)
尝试,
String DATE_FORMAT = "yyyy-MM-dd";
Date value = null;
String date = "2014-02-02";
try {
value = new SimpleDateFormat(DATE_FORMAT).parse(date);
System.out.println(value);
} catch (ParseException e) {
System.out.println(e.getMessage());
}