Tengo una variable LocalDate llamada fecha, cuando la imprimo muestra 1988-05-05. Necesito convertir esto para que se imprima como 05.mayo 1988. ¿Cómo hacer esto?
Echa un vistazo a la clase DateTimeFormatter . Incluso tiene ejemplos de cómo convertir ay desde Strings.
azurefrog
2
Debería mostrar un código, lo que ha intentado hasta ahora y lo que no funciona para que la gente pueda ayudarlo.
bvidal
Traté de hacerlo, pero debido a este molesto "no cumple con nuestros estándares de calidad", finalmente me di por vencido, me tomó 15 minutos publicar esto porque tuve que corregir "i" con "I".
Muchas gracias, esto ayuda, pero no funcionó con 'LLLL' para mostrar el nombre del mes, pero con 'MMMM' encontré esto extraño ya que incluso en la documentación dice lo contrario. Pero una vez más, gracias por ayudarme .
Jasko
2
Ahora localDate.format (formateador); no funciona en absoluto
Con la ayuda de las publicaciones de ProgrammersBlock se me ocurrió esto. Mis necesidades eran ligeramente diferentes. Necesitaba tomar una cadena y devolverla como un objeto LocalDate. Me entregaron el código que usaba el Calendario anterior y SimpleDateFormat. Quería hacerlo un poco más actual. Esto es lo que se me ocurrió.
import java.time.LocalDate;import java.time.format.DateTimeFormatter;voidExampleFormatDate(){LocalDate formattedDate =null;//Declare LocalDate variable to receive the formatted date.DateTimeFormatter dateTimeFormatter;//Declare date formatterString rawDate ="2000-01-01";//Test string that holds a date to format and parse.
dateTimeFormatter =DateTimeFormatter.ISO_LOCAL_DATE;//formattedDate.parse(String string) wraps the String.format(String string, DateTimeFormatter format) method.//First, the rawDate string is formatted according to DateTimeFormatter. Second, that formatted string is parsed into//the LocalDate formattedDate object.
formattedDate = formattedDate.parse(String.format(rawDate, dateTimeFormatter));}
Espero que esto ayude a alguien, si alguien ve una mejor manera de hacer esta tarea, agregue su opinión.
Veo una mejor manera: LocalDate.parse(rawDate)¡ solo ! String.formatse está utilizando en una forma totalmente incorrecta aquí, en realidad solo devuelve la primera cadena; el DateTimeFormatterno se está utilizando en absoluto; parsees un staticmétodo de LocalDate; formattedDatees no una fecha con formato, ni siquiera un String(a lo solicitado en cuestión)
user85421
0
Hay una forma integrada de formatear LocalDate para joda lib
@ Edward, si no es así, pruébalo y proporciona una solución que creas que es mejor.
Inoy
1
¿Quieres que demuestre que LocalDate.toString (patrón de cadena) NO existe? Proporcione una referencia a ese método si existe; no he podido encontrarlo en ningún javadocs. En cuanto a una solución, esta pregunta ya tiene eso.
Edward
@ Edward, parece que estás teniendo dificultades para encontrarlo. Actualicé mi respuesta.
Inoy
Joda Time no está "incorporado". OP parece estar usando java.time.LocalDate, no joda.time
Edward
-11
Una forma bastante agradable de hacer esto es usar SimpleDateFormat. Te mostraré cómo:
SimpleDateFormat sdf =newSimpleDateFormat("d MMMM YYYY");Date d =newDate();
sdf.format(d);
String
s.Respuestas:
SimpleDateFormat no funcionará si está comenzando con LocalDate, que es nuevo en Java 8. Por lo que puedo ver, tendrá que usar DateTimeFormatter, http://docs.oracle.com/javase/8/docs/api/java/ hora / formato / DateTimeFormatter.html .
Debería imprimirse el 05 de mayo de 1988. Para obtener el período posterior al día y antes del mes, es posible que deba usar "dd'.LLLL aaaa"
fuente
Podría ser corto como:
fuente
La respuesta anterior lo muestra por hoy
fuente
Con la ayuda de las publicaciones de ProgrammersBlock se me ocurrió esto. Mis necesidades eran ligeramente diferentes. Necesitaba tomar una cadena y devolverla como un objeto LocalDate. Me entregaron el código que usaba el Calendario anterior y SimpleDateFormat. Quería hacerlo un poco más actual. Esto es lo que se me ocurrió.
Espero que esto ayude a alguien, si alguien ve una mejor manera de hacer esta tarea, agregue su opinión.
fuente
LocalDate.parse(rawDate)
¡ solo !String.format
se está utilizando en una forma totalmente incorrecta aquí, en realidad solo devuelve la primera cadena; elDateTimeFormatter
no se está utilizando en absoluto;parse
es unstatic
método deLocalDate
;formattedDate
es no una fecha con formato, ni siquiera unString
(a lo solicitado en cuestión)Hay una forma integrada de formatear LocalDate para joda lib
En caso de que aún no lo tenga, agregue esto a build.gradle:
¡Feliz codificación! :)
fuente
Una forma bastante agradable de hacer esto es usar
SimpleDateFormat
. Te mostraré cómo:Veo que tienes la fecha en una variable:
Salud.
fuente
LocalDate
instancia en un formato específico. ¿Cómo podríaSimpleDateFormat
ayudarlo aquí?