привет, ребята, я использую этот метод, чтобы проверить, может ли строка быть преобразована в дату или нет, но кажется, что она не работает, это код, который я написал, пользователь вводит дату в этот формат дд/MM/YYYY, то это то, что происходит для проверки егоparse check не работает
...
String date = JOptionPane.showInputDialog(frame,"Insert Date:");
if (date ==null) { return;}
while (!(isValidDate(date))) {
JOptionPane.showMessageDialog(frame, "Incorrect Date");
date = JOptionPane.showInputDialog(frame,"Insert Date:");
if (date ==null) { return;} }
String[] parts = date.split("/");
int year = Integer.parseInt(parts[2]);
int month = Integer.parseInt(parts[1]);
int day = Integer.parseInt(parts[0]);
...
и это метод для проверки даты
public boolean isValidDate(String dateString) {
SimpleDateFormat df = new SimpleDateFormat("dd/MM/YYYY");
if (dateString.length() != "ddMMYYYY".length()) {
return false; }
try {
df.parse(dateString);
return true;
} catch (ParseException e) {
return false;
}
это, кажется, не работает потому что она всегда идет в то время блокировать все, что я вставляю во вход, в чем проблема с этим кодом?
EDIT
исправлена ошибка при условии
if (dateString.length() != "ddMMYYYY".length())
теперь я получил еще одну проблему, принимает значения, как 54/12/2030, которые obvioiusly являются не формат даты
может быть '«дд/ММ/ГГГГ».Length()'? –