我是Java8的新手
我试图通过检查我的应用程序中可接受的日期格式列表来检查DateString是否有效。
我目前正在使用SimpleDateFormat。 是否可以使用DateTimeFormatter执行此操作,因为我使用的是Java8?
public static boolean isDateValid(String dateValue)
{
boolean returnVal = false;
String[] permissFormats = new String[]{"yyyy-MM-dd", "ddMMMyy"};
SimpleDateFormat sdfObj = new SimpleDateFormat();
sdfObj.setLenient(false); //strict validation
ParsePosition position = new ParsePosition(0);
for (int i = 0; i < permissFormats.length; i++) {
sdfObj.applyPattern(permissFormats[i]);
position.setIndex(0);
position.setErrorIndex(-1);
sdfObj.parse(dateValue, position);
if (position.getErrorIndex() == -1) {
returnVal = true;
break;
}
}
return returnVal;
}
答案 0 :(得分:1)
这是一种只用java 8等效替换的方法。
public static boolean isDateValid(String dateValue)
{
boolean returnVal = false;
String[] permissFormats = new String[]{"yyyy-MM-dd", "ddMMMyy"};
for (int i = 0; i < permissFormats.length; i++) {
DateTimeFormatter sdfObj = new DateTimeFormatterBuilder()
.parseStrict().parseCaseInsensitive().appendPattern(permissFormats[i]).toFormatter();
ParsePosition position = new ParsePosition(0);
position.setIndex(0);
position.setErrorIndex(-1);
sdfObj.parse(dateValue, position);
if (position.getErrorIndex() == -1) {
returnVal = true;
break;
}
}
return returnVal;
}