SimpleDateFormat для создания 4-х значного месяца - PullRequest
0 голосов
/ 14 мая 2019

У нас есть код, очень похожий на код ниже, где мы берем java.util.Date и минус определенное количество секунд от даты и сохраняем его в виде строки в sqlite db:

private static final String DB_DATE_FORMAT_STRING = "yyyy-MM-dd'T'HH:mm:ssZ"
SimpleDateFormat DATE_FORMAT_NO_MS = new SimpleDateFormat(DB_DATE_FORMAT_STRING, Locale.US);

String dateToString(java.util.Date date date) { 
    return DATE_FORMAT_NO_MS.format(date);
}

затем позже мы используем ту же строку в java 8 DateTimeFormatter для создания Java 8 OffsetDateTime:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern(DB_DATE_FORMAT_STRING);
OffsetDateTime odt = eventData.setDateReceived(OffsetDateTime.parse(dateString, eventDbTimeFormatter));

Мы продолжаем получать отчеты о сбоях, как показано ниже, при разборе строки db обратно в OffsetDateTime:

2019-0005-12T12: 07: 47-0500 'не удалось проанализировать с индексом 7 org.threeten.bp.format.DateTimeFormatter.parseToBuilder

Как может месяцстать 0005 для SimpleDateFormat?

...