Я использую SimpleDateFormat в Java, и по какой-то причине он не определяет месяц. Вот мой код:
/**
* Takes a date/time stamp which looks like yyyyMMDDhhmmss on converts it to
* yyyy-MM-DDThh:mm:ssZ
*
* @param timestamp
* @return
*/
public static String ConvertDate(String timestamp) {
if (timestamp == null || timestamp.length() < 14)
return null;
String timeString = null;
System.out.println(timestamp);
DateFormat outputFormat = new SimpleDateFormat("YYYY-MM-DD'T'hh:mm:ss'Z'");
DateFormat inputFormat = new SimpleDateFormat("yyyyMMDDhhmmss");
try{
Date date = inputFormat.parse(timestamp);
timeString = outputFormat.format(date);
}
catch(Exception e){}
return timeString;
}
Вызов этого метода: ConvertDate("20190803122424") возвращает следующее: 2019-01-03T12:24:24Z тогда как я хочу вернуть: 2019-08-03T12:24:24Z
Что-то не так с моим форматом вывода?
setLenient(false)приводит к тому, чтоparseвыдает исключение. - person Ian McLaird   schedule 12.11.2019SimpleDateFormatиDate. Эти классы плохо спроектированы и давно устарели, а первые, как известно, доставляют много хлопот. Вместо этого используйтеOffsetDateTimeиDateTimeFormatterиз java.time, современного API даты и времени Java а>. - person Ole V.V.   schedule 12.11.2019'Z'с кавычками обязательно даст вам неправильные результаты. - person Ole V.V.   schedule 12.11.2019