bloque4:fechas
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| bloque4:fechas [04/03/2018 12:40] – [Uso de DateTimeFormatter] Fernando Valdeón | bloque4:fechas [05/03/2018 11:38] (actual) – borrado Fernando Valdeón | ||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| - | ======Fechas y horas====== | ||
| - | =====paquete java.time===== | ||
| - | Con la versión 8 de Java (2014) se incluyó un nuevo paquete con un conjunto de clases que facilitan el trabajo con fechas y horas. | ||
| - | |||
| - | Estas nuevas clases sustituyen a las viejas clases '' | ||
| - | |||
| - | Las nuevas clases '' | ||
| - | |||
| - | ===== Clase LocalDate ===== | ||
| - | Se usa para almacenar | ||
| - | |||
| - | Hay que tener en cuenta | ||
| - | |||
| - | ===== Instanciar LocalDate ===== | ||
| - | Para crear un objeto de tipo LocalDate puedo utilizar alguno de sus método estáticos. | ||
| - | LocalDate no tiene constructor, | ||
| - | |||
| - | <code java> | ||
| - | //Obtener la fecha de hoy (basada en el reloj del Sistema) | ||
| - | |||
| - | LocalDate fechaActual = LocalDate.now(); | ||
| - | |||
| - | //Obtener una fecha cualquiera | ||
| - | LocalDate fecha = LocalDate.of(2018, | ||
| - | //Almacena la fecha de 23-3-2018 | ||
| - | |||
| - | //Para obtener una fecha a partir de un String | ||
| - | LocalDate fecha = LocalDate.parse(" | ||
| - | </ | ||
| - | |||
| - | |||
| - | ===== Métodos de instancia===== | ||
| - | '' | ||
| - | |||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | |||
| - | Recordar que el objeto LocalDate no cambia nunca, por lo que el nuevo objeto generado hay que guardarlo en una variable: | ||
| - | |||
| - | '' | ||
| - | |||
| - | |||
| - | ===== Clase Period ===== | ||
| - | Podemos usar esta clase simplemente para calcular el tiempo que pasa entre 2 fechas '' | ||
| - | |||
| - | <code java> | ||
| - | LocalDate fecha1 = LocalDate.now(); | ||
| - | LocalDate fecha2 = LocalDate.Parse(" | ||
| - | |||
| - | Period diferencia = Period.between(fecha2, | ||
| - | |||
| - | //Muestra los días de diferencia | ||
| - | System.out.println(diferencia.getDays()); | ||
| - | |||
| - | |||
| - | //Muestra los meses de diferencia | ||
| - | System.out.println(diferencia.getMonths()); | ||
| - | |||
| - | //Muestra los años de diferencia | ||
| - | System.out.println(diferencia.getYears()); | ||
| - | |||
| - | </ | ||
| - | |||
| - | ===== Clase LocalDateTime ===== | ||
| - | Esta clase funciona igual que la clase LocalDate. La diferencia es que guarda una fecha y una hora. | ||
| - | |||
| - | * Obtener fecha y hora actual: | ||
| - | '' | ||
| - | |||
| - | * Crear una fecha con hora concreta (25-7-2016 22:11:30) | ||
| - | '' | ||
| - | |||
| - | * Modificar una fecha | ||
| - | <code java> | ||
| - | LocalDateTime dateTime = LocalDateTime.of(2016, | ||
| - | LocalDateTime dateTime1 = dateTime.withYear(2017); | ||
| - | LocalDateTime dateTime2 = dateTime.withMonth(8); | ||
| - | LocalDateTime dateTime3 = dateTime.withDayOfMonth(27); | ||
| - | LocalDateTime dateTime4 = dateTime.withHour(20); | ||
| - | LocalDateTime dateTime5 = dateTime.withMinute(25); | ||
| - | LocalDateTime dateTime6 = dateTime.withSecond(23); | ||
| - | LocalDateTime dateTime7 = dateTime.withNano(24); | ||
| - | </ | ||
| - | |||
| - | ===== Clase LocalTime ===== | ||
| - | Funciona igual que las anteriores pero solo almacena una hora. | ||
| - | |||
| - | <code java> | ||
| - | //Hora actual | ||
| - | LocalTime horaActual = LocalTime.now(); | ||
| - | |||
| - | //Almacenar una hora cualquiera (15:45:59) | ||
| - | LocalTime hora = LocalTime.of(15, | ||
| - | |||
| - | //Almacenar una hora a partir de un String | ||
| - | LocalTime hora = LocalTime.parse(" | ||
| - | |||
| - | //Siempre en formato hh-mm-ss | ||
| - | </ | ||
| - | |||
| - | **Métodos de instancia** | ||
| - | |||
| - | getMinute(), | ||
| - | |||
| - | <code java> | ||
| - | LocalTime time = LocalTime.of(14, | ||
| - | LocalTime time1 = time.withHour(20); | ||
| - | LocalTime time2 = time.withMinute(25); | ||
| - | LocalTime time3 = time.withSecond(23); | ||
| - | LocalTime time4 = time.withNano(24); | ||
| - | LocalTime time5 = time.with(ChronoField.HOUR_OF_DAY, | ||
| - | </ | ||
| - | |||
| - | |||
| - | |||
| - | ===== Clase DateTimeFormatter ===== | ||
| - | Mediante esta clase podemos mostrar o leer fechas y horas en el formato que deseamos. Por ejemplo, 23/7/2017 para una fecha o 1-27-45 para una hora. | ||
| - | |||
| - | Para dar formato | ||
| - | |||
| - | ^Caracter^Representa^ | ||
| - | |**y, u**|año en formato de cuatro o dos dígitos (2014 o 14)| | ||
| - | |**D**|número de día del año (225)| | ||
| - | |**d**|número del día del mes en cuestión (27)| | ||
| - | |**M**|mes del año en forma numérica (01-12)| | ||
| - | |**L**|mes del año en texto| | ||
| - | |**H**|hora| | ||
| - | |**m**|minutos| | ||
| - | |**s**|segundos| | ||
| - | |**a**| periodo del día (am, pm)| | ||
| - | |||
| - | De esto modo podemos crear patrones del tipo: | ||
| - | |||
| - | '' | ||
| - | |||
| - | En la API de Java de la clase [[https:// | ||
| - | ==== Uso de DateTimeFormatter ==== | ||
| - | |||
| - | Crear un DateTimeFormatter, | ||
| - | <code java> | ||
| - | DateTimeFormatter formateador = DateTimeFormatter.ofPattern(" | ||
| - | </ | ||
| - | |||
| - | Obtener la fecha de hoy: | ||
| - | |||
| - | <code java> | ||
| - | LocalDate fecha = LocalDate.now() | ||
| - | </ | ||
| - | |||
| - | Mostrar la fecha de hoy, con el formato establecido en el DateTimeFormatter: | ||
| - | |||
| - | <code java> | ||
| - | //Muestra la fecha en formato día/ | ||
| - | System.out.println(fecha.format(formateador)); | ||
| - | System.out.println(formateador.format(fecha)); | ||
| - | </ | ||
| - | |||
| - | Muestrar o almacenar una fecha obtenida en un formato distinto: | ||
| - | <code java> | ||
| - | System.out.println(LocalDate.parse(" | ||
| - | |||
| - | fecha = fecha.parse(“3/ | ||
| - | </ | ||
| - | ---- | ||
| - | |||
| - | (c) {{date> %Y}} Fernando Valdeón | ||
bloque4/fechas.1520167213.txt.gz · Última modificación: 16/09/2024 20:53 (editor externo)
