Дата выводится в необходимом формате, но валидатор не пропускает.
package com.javarush.task.task17.task1710;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;
/*
CRUD
*/
public class Solution {
public static List<Person> allPeople = new ArrayList<Person>();
static {
allPeople.add(Person.createMale("Иванов Иван", new Date())); //сегодня родился id=0
allPeople.add(Person.createMale("Петров Петр", new Date())); //сегодня родился id=1
}
public static void main(String[] args) {
//start here - начни тут
if (args.length != 0) {
if (args[0].equals("-c"))
addPerson(args[1], args[2], args[3]);
else if (args[0].equals("-i"))
findPerson(args[1]);
else if (args[0].equals("-u"))
refreshPerson(args[1], args[2], args[3], args[4]);
else if (args[0].equals("-d"))
removePerson(args[1]);
}
//Проверка листа
// for (Person p : allPeople)
// System.out.println(p.getName() + " - " + p.getSex() + " - " + p.getBirthDate());
}
public static void addPerson(String n, String s, String d) {
try {
Date date = new SimpleDateFormat("dd/MM/yyyy").parse(d);
if (s.equals("м"))
allPeople.add(Person.createMale(n, date));
else
allPeople.add(Person.createFemale(n, date));
} catch (ParseException e) { }
System.out.println(allPeople.size() - 1);
}
public static void refreshPerson(String i, String name, String sex, String d) {
allPeople.remove(Integer.parseInt(i));
try {
Date date = new SimpleDateFormat("dd/MM/yyyy").parse(d);
if (sex.equals("m"))
allPeople.add(Integer.parseInt(i), Person.createMale(name, date));
else
allPeople.add(Integer.parseInt(i), Person.createFemale(name, date));
} catch (ParseException e) { }
}
public static void removePerson(String i) {
allPeople.get(Integer.parseInt(i)).setName(null);
allPeople.get(Integer.parseInt(i)).setSex(null);
allPeople.get(Integer.parseInt(i)).setBirthDate(null);
}
public static void findPerson(String index) {
Person person = allPeople.get(Integer.parseInt(index));
String text = person.getName();
if (person.getSex().equals(Sex.MALE))
text = text + " м";
else
text = text + " ж";
text = text + " " + new SimpleDateFormat("dd-MMMM-yyyy", Locale.ENGLISH).format(person.getBirthDate());
System.out.println(text);
}
}