SimpleDateFormat
, кажется, игнорирует строки в соответствующей строке после того, как нашел соответствующий шаблон.Java Simpledateformat, кажется, игнорирует строку после совпадения с шаблоном.
Например: шаблон "yyyyMMddHHmm"
соответствует 201601251531oi
, который, я полагаю, не должен. Однако это 20160125153133
не соответствует действительности. Я пробовал setLenient
как true
и не имеет никакого эффекта. Я знаю, что мы можем добавить еще одну проверку на количество цифр (регулярное выражение), но есть ли способ строго сделать этот шаблон только с использованием SimpleDateFormat
?
public static boolean isValidDateTimeFormat(String anyString,
String dateTimePattern) {
// here the pattern is 'yyyyMMddHHmm'
SimpleDateFormat datePattern = new SimpleDateFormat(dateTimePattern);
datePattern.setLenient(false); // no difference
try {
datePattern.parse(anyString);
return true;
}
catch (Exception pe){
return false;
}
}
Просто сделай это так, как вы уже мышления. Вероятно, это лучший способ: – ControlAltDel
@keppil, если он повторяется, а затем указывать на них, а не просто называть как дубликаты. Я делал поиск, прежде чем добавлять этот вопрос, и есть множество вопросов в SimpleDateFormat, и ни один из них, который я видел, не дает ответа. – ulab
@ControlAltDel ok Я думаю, что если нет другого пути, тогда это лучший способ :) – ulab