добрый день помогите разобраться пожалуйста
есть вот такой кусок кода
введите сюда код public static void main(String[] args) throws IOException {
Date newDate=null;
SimpleDateFormat oldFormat = new SimpleDateFormat("dd/mm/yyyy", Locale.ENGLISH);
SimpleDateFormat newFormat = new SimpleDateFormat("dd-mm-yyyy", Locale.ENGLISH); // !!!!
// ================================ add person ===============================//
if (args[0].equals("-c")){
try{
Date oldDate = oldFormat.parse(args[3]); // получил дату в старом формате
String newData = newFormat.format(oldDate); // получил строку в новом формате
System.out.println(newData); // проверка строки
newDate = newFormat.parse(newData); // получил дату в новом формате
}catch (ParseException e){
e.printStackTrace();
}
if (args[2].equals("м")){
Person person = Person.createMale(args[1], newDate);
allPeople.add(person);
System.out.println(allPeople.indexOf(person)); // вывод индекса крайнего элемента
System.out.println(newFormat.format(newDate)); // проверка формата установленной даты
}
else {
Person person = Person.createFemale(args[1],newDate);
allPeople.add(person);
System.out.println(allPeople.indexOf(person)); // вывод индекса крайнего элемента
}
}`
если формат вот такой, SimpleDateFormat newFormat = new SimpleDateFormat("dd-mm-yyyy", Locale.ENGLISH); // !!!!
то вывод на всех проверках как и положено
15-04-1990
а если написать вот так "dd-MMM-yyyy" то вывод
15-Jan-1990
в чем тут дело?
Ну так вы неправильно задаете этот самый паттерн, о котором я говорю. Вы делаете так "dd/mm/yyyy", нужно делать так "dd/MM/yyyy". Месяцы указываются в паттерне большими буквами, потому как есть еще минуты которые указываюся именно так маленькими буквами, что четко указано в официальной документации: https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html Вы изначально парсите неправильную дату, а при попытке вывести неправильную дату в правильном формате получаете указанный бред.
А вообще, если вы используете Java 1.8, то замените это позорище в виде класса Date на LocalDate, таким образом, избавитесь от многих проблем.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости