yyyymmdd yyyy ofpattern localdatetime example ejemplo datetimeformatter convert change java datetime java-8 java-time

java - ofpattern - localdatetime yyyymmdd



¿Cómo analizar/formatear fechas con LocalDateTime?(Java 8) (3)

Las dos respuestas anteriores explican muy bien la pregunta sobre los patrones de cuerdas. Sin embargo, en caso de que esté trabajando con ISO 8601, no es necesario aplicar DateTimeFormatter ya que LocalDateTime ya está preparado para ello:

Convertir LocalDateTime a la zona horaria ISO8601 cadena

LocalDateTime ldt = LocalDateTime.now(); ZonedDateTime zdt = ldt.atZone(ZoneOffset.UTC); //you might use a different zone String iso8601 = zdt.toString();

Convertir de una cadena ISO8601 a un LocalDateTimeTime

String iso8601 = "2016-02-14T18:32:04.150Z"; ZonedDateTime zdt = ZonedDateTime.parse(iso8601); LocalDateTime ldt = zdt.toLocalDateTime();

Java 8 agregó una nueva API java.time para trabajar con fechas y horas ( JSR 310 ).

Tengo la fecha y la hora como cadena (por ejemplo, "2014-04-08 12:30" ). ¿Cómo puedo obtener una instancia de LocalDateTime de la cadena dada?

Después de que termine de trabajar con el objeto LocalDateTime : ¿Cómo puedo convertir la instancia de LocalDateTime nuevo a una cadena con el mismo formato que se muestra arriba?


También puede usar LocalDate.parse() o LocalDateTime.parse() en una String sin darle un patrón, si la String está en formato ISO-8601 .

por ejemplo,

String strDate = "2015-08-04"; LocalDate aLD = LocalDate.parse(strDate); System.out.println("Date: " + aLD); String strDatewithTime = "2015-08-04T10:11:30"; LocalDateTime aLDT = LocalDateTime.parse(strDatewithTime); System.out.println("Date with Time: " + aLDT);

Salida ,

Date: 2015-08-04 Date with Time: 2015-08-04T10:11:30

y use DateTimeFormatter solo si tiene que lidiar con otros patrones de fecha, por ejemplo, dd MMM uuuu representa el día del mes (dos dígitos), tres letras del nombre del mes (enero, febrero, marzo, ...) , y un año de cuatro dígitos:

DateTimeFormatter dTF = DateTimeFormatter.ofPattern("dd MMM uuuu"); String anotherDate = "04 Aug 2015"; LocalDate lds = LocalDate.parse(anotherDate, dTF); System.out.println(anotherDate + " parses to " + lds);

Salida

04 Aug 2015 parses to 2015-08-04

también recuerde que el objeto DateTimeFormatter es bidireccional; Puede analizar tanto la entrada como la salida de formato.

String strDate = "2015-08-04"; LocalDate aLD = LocalDate.parse(strDate); DateTimeFormatter dTF = DateTimeFormatter.ofPattern("dd MMM uuuu"); System.out.println(aLD + " formats as " + dTF.format(aLD));

Salida

2015-08-04 formats as 04 Aug 2015

(vea la lista completa de patrones para formatear y analizar DateFormatter )

Symbol Meaning Presentation Examples ------ ------- ------------ ------- G era text AD; Anno Domini; A u year year 2004; 04 y year-of-era year 2004; 04 D day-of-year number 189 M/L month-of-year number/text 7; 07; Jul; July; J d day-of-month number 10 Q/q quarter-of-year number/text 3; 03; Q3; 3rd quarter Y week-based-year year 1996; 96 w week-of-week-based-year number 27 W week-of-month number 4 E day-of-week text Tue; Tuesday; T e/c localized day-of-week number/text 2; 02; Tue; Tuesday; T F week-of-month number 3 a am-pm-of-day text PM h clock-hour-of-am-pm (1-12) number 12 K hour-of-am-pm (0-11) number 0 k clock-hour-of-am-pm (1-24) number 0 H hour-of-day (0-23) number 0 m minute-of-hour number 30 s second-of-minute number 55 S fraction-of-second fraction 978 A milli-of-day number 1234 n nano-of-second number 987654321 N nano-of-day number 1234000000 V time-zone ID zone-id America/Los_Angeles; Z; -08:30 z time-zone name zone-name Pacific Standard Time; PST O localized zone-offset offset-O GMT+8; GMT+08:00; UTC-08:00; X zone-offset ''Z'' for zero offset-X Z; -08; -0830; -08:30; -083015; -08:30:15; x zone-offset offset-x +0000; -08; -0830; -08:30; -083015; -08:30:15; Z zone-offset offset-Z +0000; -0800; -08:00; p pad next pad modifier 1 '' escape for text delimiter '''' single quote literal '' [ optional section start ] optional section end # reserved for future use { reserved for future use } reserved for future use


Fecha y hora de análisis

Para crear un objeto LocalDateTime partir de una cadena, puede usar el LocalDateTime.parse() estático LocalDateTime.parse() . Toma una cadena y un DateTimeFormatter como parámetro. DateTimeFormatter se utiliza para especificar el patrón de fecha / hora.

String str = "1986-04-08 12:30"; DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); LocalDateTime dateTime = LocalDateTime.parse(str, formatter);

Formato de fecha y hora

Para crear una cadena formateada a partir de un objeto LocalDateTime puede usar el método format() .

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); LocalDateTime dateTime = LocalDateTime.of(1986, Month.APRIL, 8, 12, 30); String formattedDateTime = dateTime.format(formatter); // "1986-04-08 12:30"

Tenga en cuenta que hay algunos formatos de fecha / hora de uso común predefinidos como constantes en DateTimeFormatter . Por ejemplo: el uso de DateTimeFormatter.ISO_DATE_TIME para formatear la instancia de LocalDateTime desde arriba daría como resultado la cadena "1986-04-08T12:30:00" .

Los métodos parse() y format() están disponibles para todos los objetos relacionados con la fecha / hora (por ejemplo, LocalDate o ZonedDateTime )