2010-09-14 81 views
23

Tengo la respuesta: Es muy simple.Cómo convertir Joda LocalDate a String en Java?

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

Por favor, no editar su pregunta cuando se obtiene la respuesta correcta. La respuesta es visible para que todos la vean aquí, de todos modos. Además: si la respuesta es buena (suficiente) para ti, márcala como "la" respuesta (usa el símbolo de cuña al lado de la respuesta que consideres correcta) para que el póster obtenga el crédito que debe recibir por eso. – Dirk

Respuesta

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

Mientras que la respuesta que ha encontrado trabajará, prefiero mirarlo al revés, en términos de qué objeto es "activo" (en términos de formato) y que es justo proporcionar datos:

LocalDate localDate = new LocalDate(2010, 9, 14); 
DateTimeFormatter formatter = DateTimeFormat.forPattern("MM/dd/yyyy"); 
String formattedDate = formatter.print(localDate); 
+0

¿No puedo encontrar dónde está DateTimeFormat? ¿Puede dar las declaraciones de importación también? – samthebest

+0

@samthebest: ¿Buscó en el [Javadoc] (http://www.joda.org/joda-time/apidocs/index.html)? Solo una búsqueda en Google para "joda DateTimeFormat" lo encuentra, pero si no, http://www.joda.org/joda-time/apidocs/org/joda/time/format/DateTimeFormat.html –

+0

Vaya, leí mal la pregunta , Pensé que esto era para Java 8 veces, no joda. – samthebest

82

de toString puede tomar una cadena de formato directamente, por lo que puede omitir la creación de la DateTimeFormatter LocalDate:

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

http://joda-time.sourceforge.net/apidocs/org/joda/time/LocalDate.html#toString(java.lang.String)

También escribí un post sobre ello en mi blog - http://codetutr.com/2013/03/05/joda-time-how-to-parse-a-string-to-joda-localdate/

+1

Esta debería ser la respuesta correcta. – BinaryShrub

+0

¿ToString (string_format) crea su propia instancia DateTimeFormatter cada vez que la llama? Si es así, los métodos que hacen un montón de conversiones serían mucho más eficientes si crearan su propia instancia y se reutilicen llamando al método print() del formateador. – Rick

+1

@Rick Curiosamente, internamente Joda (2.3 como mínimo) gestiona un caché de patrones seguro para subprocesos. Crea su propia instancia DateTimeFormatter la primera vez y la reutiliza en cada una de las siguientes llamadas. – Stephan