Разбор дат Java с усеченной информацией о часовом поясе
Рассмотрим следующую строку даты
2012-10-01 01:02:03.004+0500
Это признается в Java с использованием следующего SimpleDateFormat
шаблон:
yyyy-MM-dd HH:mm:ss.SSSZ
Однако если указанная выше информация о часовом поясе усекается до 2 цифр, т.е.
2012-10-01 01:02:03.004+05
строка даты не соответствует ни одному допустимому формату, поэтому нет SimpleDateFormat
шаблон, который можно использовать для правильного его анализа.
Есть ли обходной путь для правильного анализа усеченного часового пояса без предварительной обработки строки?
Если нет, то какое регулярное выражение было бы оптимальным для этой предварительной обработки для большого числа таких строк даты в 1 раунде, например, с использованием replaceFirst()
позвони, как в этом похожем вопросе?
1 ответ
Я не знаю хорошего решения без предварительной обработки строк, но если replaceFirst
допустимо, вы можете использовать этот фрагмент кода:
dateStr.replaceFirst("(?<=[+-]\\d\\d)$", "00")
Этот код добавляет два ноля к строкам, оканчивающимся на <plus|minus><digit><digit>
( ссылка на ideone).