java DateTimeFormatterBuilder fails on testtime [duplicate]
java DateTimeFormatterBuilder завершается с ошибкой во время тестирования [дубликат]
У меня есть простой JUnit-тест для DateTimeFormatterBuilder. Во время выполнения он работает, когда что-то String приходит на Spring-MVC-сервер (@RequestParam)
Во время тестирования он завершается с тем же String значением.
Во время тестирования с тем же контекстом spring-aplication я делаю то же самое, что и во время выполнения, и это завершается с ошибкой.
У кого-нибудь есть идеи?
Переведено автоматически
Ответ 1
Название месяца на английском, поэтому вам лучше установить java.util.Locale в форматере.
Если вы не установите его, форматировщик будет использовать локаль JVM по умолчанию. И если это не английский, вы можете получить сообщение об ошибке (и разные среды могут иметь разные конфигурации, поэтому лучше установить языковой стандарт, а не полагаться на JVM по умолчанию).
Просто do toFormatter(Locale.ENGLISH) вместо just toFormatter() и все.
Ответ 2
Вы используете, hh который является clock-hour-of-am-pm (1-12) без добавления информации AM / PM в строку даты.
Вместо этого вы должны использовать час дня (0-23) как в шаблоне: DateTimeFormatter.ofPattern("dd/MMM/yyyy:HH:mm:ss Z");
Или вы можете добавить a в шаблон даты:
DateTimeFormatter.ofPattern("dd/MMM/yyyy:hh:mm:ss a Z");
и передает информацию AM / PM в строке даты:
"20/Mar/2019:00:00:01 AM +0100"
Редактировать:
Согласно комментариям, проблема также может быть связана с используемой вами локализацией, чтобы использовать локаль en / US, просто передайте локаль методу ofPattern: