Как преобразовать Joda LocalDate в String в Java?

Я получил ответ: Это очень просто.

DateTimeFormatter fmt = DateTimeFormat.forPattern("MM/dd/yyyy");
String formattedDate = jodeLocalDateObj.toString( fmt );

person Surya Rao Rayarao    schedule 14.09.2010    source источник
comment
Пожалуйста, не редактируйте свой вопрос, когда получите правильный ответ. В любом случае, ответ здесь виден каждому. Кроме того: если ответ подходит (достаточно) для вас, отметьте его как ответ (используйте символ клина рядом с ответом, который вы считаете правильным), чтобы постер получил признание, которое он должен получить за него.   -  person Dirk    schedule 14.09.2010


Ответы (2)


LocalDate toString может напрямую принимать строку формата, поэтому вы можете пропустить создание DateTimeFormatter:

String formattedDate = myLocalDate.toString("MM/dd/yyyy");

https://www.joda.org/joda-time/apidocs/org/joda/time/LocalDate.html#toString-java.lang.String-

person stephen.hanson    schedule 04.03.2013
comment
Создает ли toString(string_format) свой собственный экземпляр DateTimeFormatter каждый раз, когда вы его вызываете? Если это так, то методы, которые выполняют множество преобразований, были бы намного эффективнее, если бы они создавали свой собственный экземпляр и повторно использовали его, вызывая метод print() средства форматирования. - person Rick; 16.09.2015
comment
@Rick Интересно, что внутри Joda (по крайней мере, 2.3) управляет кешем шаблонов, безопасным для потоков. Он создает свой собственный экземпляр DateTimeFormatter только в первый раз и повторно использует его при каждом следующем вызове. - person Stephan; 01.04.2016
comment
Кроме того, я бы не тратил свое время на беспокойство о производительности форматирования даты, если бы я не делал это по крайней мере тысячи раз. Крупная рыба для жарки. - person stephen.hanson; 01.04.2016

Хотя ответ, который вы нашли, будет работать, я предпочитаю смотреть на него с другой стороны, с точки зрения того, какой объект является «активным» (с точки зрения форматирования) и который просто предоставляет данные:

LocalDate localDate = new LocalDate(2010, 9, 14);
DateTimeFormatter formatter = DateTimeFormat.forPattern("MM/dd/yyyy");
String formattedDate = formatter.print(localDate);
person Jon Skeet    schedule 14.09.2010
comment
Я не могу найти, где DateTimeFormat? не могли бы вы также предоставить отчеты об импорте - person samthebest; 11.10.2016
comment
@samthebest: Вы смотрели Javadoc? Просто поиск в Google для joda DateTimeFormat находит его, но если нет, joda.org/joda-time/apidocs/org/joda/time/format/ - person Jon Skeet; 11.10.2016
comment
К сожалению, я неправильно понял вопрос, я думал, что это для времени Java 8, а не для joda. - person samthebest; 12.10.2016