Я пытаюсь реализовать метод, который анализирует String
в Date
, и я хотел бы использовать SimpleDateFormat
, потому что это работает:
java.util.Date parseMonth(String str) throws ParseException {
SimpleDateFormat format=new SimpleDateFormat("MM/yyyy");
return format.parse(str);
}
Но по некоторым причинам я не получаю ParseException
на входах, где я ожидаю их получить.
- "00/2000" -> 1999-12-01, без исключений
- "13/2000" -> 01.01.2001, без исключений
Каков предпочтительный способ проверить, является ли String
правильной датой (в отношении некоторого формата, зависящего от реализации)?
SimpleDateFormat
. Он не только давно устарел, но и заведомо хлопотный. Вместо этого используйте java.time, современный API даты и времени Java. С ним намного приятнее работать. Посмотрите на его классыYearMonth
иDateTimeFormatter
. - person Ole V.V.   schedule 14.03.2018YearMonth
. - person Basil Bourque   schedule 14.05.2019