SimpleDateFormat是一种非常友好的解析器,可以滚动生成的日期而不是抛出错误.如何在没有正则表达式等的情况下严格解析日期?
fmt = new SimpleDateFormat("dd.MM.yyyy")
fmt.parse("10.11.2012") // it works
fmt.parse("10.1150.2012") // it works but it's unwanted
Run Code Online (Sandbox Code Playgroud) 我正在尝试解析日期字符串,该字符串可以具有不同格式的树.即使String不应该与第二个模式匹配,它也会以某种方式返回错误的日期.
那是我的代码:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Start {
public static void main(String[] args) {
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
try{
System.out.println(sdf.format(parseDate("2013-01-31")));
} catch(ParseException ex){
System.out.println("Unable to parse");
}
}
public static Date parseDate(String dateString) throws ParseException{
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
SimpleDateFormat sdf2 = new SimpleDateFormat("dd-MM-yyyy");
SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd");
Date parsedDate;
try {
parsedDate = sdf.parse(dateString);
} catch (ParseException ex) {
try{
parsedDate = sdf2.parse(dateString);
} catch (ParseException ex2){
parsedDate = sdf3.parse(dateString);
}
} …Run Code Online (Sandbox Code Playgroud)