Как я могу преобразовать строку в LocalDate
?
Я видел такие примеры:
LocalDate dt = new LocalDate("2005-11-12");
Но мои струны такие:
2005-nov-12
Поскольку вы используете Joda Time, вы должны использовать DateTimeFormatter
:
final DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MMM-dd");
final LocalDate dt = dtf.parseLocalDate(yourinput);
Если вы используете Java 8 или новее, обратитесь к ответу hertzi
java.time
Начиная с Java 1.8, вы можете добиться этого без дополнительной библиотеки, используя классы java.time . См. Руководство .
Однако синтаксис почти такой же.
источник
Возможно, вам придется перейти с DateTime на LocalDate.
Использование Joda Time:
источник
Форматирование даты и времени выполняется
org.joda.time.format.DateTimeFormatter class
. Три класса предоставляют фабричные методы для создания средств форматирования , и это один. Остальные -ISODateTimeFormat
иDateTimeFormatterBuilder
.final org.joda.time.LocalDate class
- неизменяемый класс datetime, представляющий дату без часового пояса .LocalDate
является потокобезопасным и неизменяемым , при условии, что Хронология тоже. Все стандартные классы Chronology являются поточно-ориентированными и неизменяемыми.источник
DateTimeFormatter
имеет встроенные форматы, которые можно напрямую использовать для анализа последовательности символов. Это чувствительно к регистру, Nov будет работать, но nov и NOV не будут работать:DateTimeFormatterBuilder
предоставляет собственный способ создания средства форматирования. Это нечувствительность к регистру, ноябрь, ноябрь и ноябрь будут обрабатываться одинаково.источник