ano*_*ous 4 java date-format simpledateformat
模式是"dd-MM-yyyy"
我认为字符串"01-01-2010mwwwwwwwwwwwwwww"不满足模式,但以下代码显示相反.
有谁能解释为什么?
public static void main(String[] args) throws Exception {
SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy");
Date date = df.parse("01-01-2010mwwwwwwwwwwwwwww");
System.out.println(date);
}
Run Code Online (Sandbox Code Playgroud)
谢谢
aio*_*obe 16
parse方法不会尝试匹配整个输入字符串.也就是说,前缀01-01-2010匹配,这就足够了.
从给定字符串的开头解析文本以生成日期.该方法可能不使用给定字符串的整个文本.
如果你需要弄清楚它是否是"完全匹配",你可以尝试以下方法:
SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy");
String strDate = "01-01-2010mwwwwwwwwwwwwwww";
ParsePosition pp = new ParsePosition(0);
Date date = df.parse(strDate, pp);
System.out.println("Complete match: " + (pp.getIndex() == strDate.length()));
strDate = "01-01-2010";
pp = new ParsePosition(0);
date = df.parse(strDate, pp);
System.out.println("Complete match: " + (pp.getIndex() == strDate.length()));
Run Code Online (Sandbox Code Playgroud)
这打印
Complete match: false
Complete match: true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1297 次 |
| 最近记录: |