Я создаю приложение, в котором пользователь выбирает дату и время в календаре, которые затем должны отображаться в текстовом поле как 26 цифр, дополняя дату нулями в конце.
Таким образом, дата должна отображаться в следующем формате:
yyyyMMddHHmmssSSS000000000
Итак, после миллисекунды (SSS) я хочу заполнить строку 9 нулями. Проблема в том, что это невозможно без добавления пробела между буквами шаблона и нулевыми константами.
Самое смешное, что если я делаю DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS000000000")
, я получаю DateTimeParseException
, но на самом деле строка форматируется в текстовом поле как нужно. Проблема в том, что при окружении экземпляра DateTimeFormatter
блоком try-catch Eclipse сообщает мне Unreachable catch block for DateTimeParseException. This exception is never thrown from the try statement body
, потому что исключение вызывается в каком-то классе зависимостей для моего текстового поля. Более того, кажется плохой практикой отлавливать ошибку, которая будет выдаваться каждый раз при выполнении кода.
DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS 000000000")
компилируется. Но мне действительно нужно, чтобы это была строка без пробелов.
Это возможно? В настоящее время я использую java.time.format.DateTimeFormatter
, но если есть какой-то класс, расширяющий его, думаю, его тоже можно использовать. Хотя я бы предпочел избегать добавления дополнительных зависимостей.
DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS'000000000'")
, но, поскольку исключение осталось, я отклонил эту попытку. Я просто отмечу @Ken Geis как правильный ответ. - person Jonatan Stenbacka   schedule 04.11.2015