我的要求是分析给定日期并找出其模式如下:
21/12/2014 - dd / mm / yyyy
21.12.14 - dd.mm.yy
21-6-14 - dd-m-yy
2014/12/15 - yyyy / mm / dd
等等。
因此,我的方法和原因是什么:
- 使用正则表达式验证日期,然后打印模式。
醇>或
- 使用SimpleDateFormat解析日期,然后打印模式。
醇>
欢迎任何其他方法。
答案 0 :(得分:0)
你可以使用这样的东西:
Pattern pattern = Pattern.compile("\\b(\\d+)([-./])\\d{1,2}\\2(\\d{2}(?:\\d{2})?)");
String date = "21/12/2014";
Matcher matcher = pattern.matcher(date);
matcher.find();
boolean dayFirst = matcher.group(1).length() == 2;
boolean fourCharYear = true;
String separator = matcher.group(2);
String dateFormat = "1sepMMsep2".replace("sep", separator);
if(dayFirst) {
dateFormat = dateFormat.replace("1", "dd").replace("2", "y");
fourCharYear = matcher.group(3).length() == 4;
} else {
dateFormat = dateFormat.replace("2", "dd").replace("1", "y");
}
if(fourCharYear) {
dateFormat = dateFormat.replace("y", "yyyy");
} else {
dateFormat = dateFormat.replace("y", "yy");
}
SimpleDateFormat format = new SimpleDateFormat(dateFormat);
Date parse = format.parse(date);
它基于以下假设:
-
,.
或/