Не могу понять что не так
package com.javarush.task.task40.task4007;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
/*
Работа с датами
*/
public class Solution {
public static void main(String[] args) {
printDate("21.4.2014 15:56:45");
System.out.println();
printDate("21.4.2014");
System.out.println();
printDate("17:33:40");
}
public static void printDate(String date) {
Calendar calendar = Calendar.getInstance();
date = date.trim();
try {
if (date.matches("\\d{1,2}\\.\\d{1,2}\\.\\d{4}\\s+\\d{2}:\\d{2}:\\d{2}")) {
String[] split = date.split("\\s");
printDate(split[0].trim(), calendar);
printTime(split[1].trim(), calendar);
} else if (date.matches("\\d{1,2}\\.\\d{1,2}\\.\\d{4}")){
printDate(date, calendar);
} else if (date.matches("\\d{2}:\\d{2}:\\d{2}")) {
printTime(date, calendar);
}
} catch (ParseException e) {
e.printStackTrace();
}
}
private static void printDate(String date, Calendar calendar) throws ParseException {
SimpleDateFormat format = new SimpleDateFormat("dd.MM.yyyy");
calendar.setTime(format.parse(date));
System.out.println("День: " + calendar.get(Calendar.DAY_OF_MONTH));
System.out.println("День недели: " + calendar.get(Calendar.DAY_OF_WEEK));
System.out.println("День месяца: " + calendar.get(Calendar.DAY_OF_MONTH));
System.out.println("День года: " + calendar.get(Calendar.DAY_OF_YEAR));
System.out.println("Неделя месяца: " + calendar.get(Calendar.WEEK_OF_MONTH));
System.out.println("Неделя года: " + calendar.get(Calendar.WEEK_OF_YEAR));
System.out.println("Месяц: " + calendar.get(Calendar.MONTH));
System.out.println("Год: " + calendar.get(Calendar.YEAR));
}
private static void printTime(String date, Calendar calendar) throws ParseException {
SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss");
calendar.setTime(format.parse(date));
System.out.println("AM или PM: " + (calendar.get(Calendar.AM_PM) == Calendar.PM ? "PM" : "AM"));
System.out.println("Часы: " + calendar.get(Calendar.HOUR));
System.out.println("Часы дня: " + calendar.get(Calendar.HOUR_OF_DAY));
System.out.println("Минуты: " + calendar.get(Calendar.MINUTE));
System.out.println("Секунды: " + calendar.get(Calendar.SECOND));
}
}