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:41] – [Clase 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^Valor que representa^ | ||
- | |**y, u**|año en formato de cuatro o dos dígitos (2014 o 14)| | ||
- | |**d**|número del día del mes en cuestión (27)| | ||
- | |**M**|mes del año en forma numérica (01-12)| | ||
- | |**D**|número de día del año (225)| | ||
- | |**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.1520167311.txt.gz · Última modificación: 16/09/2024 20:53 (editor externo)