Obtenga la fecha y hora actual en Java
Esta publicación discutirá cómo obtener la fecha y hora actuales en Java.
1. Usando LocalDateTime
class
A partir de Java 8 podemos utilizar el java.time
paquete que ofrece muchas mejoras con respecto a las API de fecha y hora de Java existentes. Para obtener la fecha y hora actual usando el reloj del sistema y la zona horaria predeterminada, podemos usar el LocalDateTime.now()
método. los java.time.LocalDateTime La clase representa una fecha y hora sin zona horaria. También proporciona varios métodos para acceder a los componentes (año, mes, día, hora, minuto, segundo, etc.) individualmente, como getYear()
, getMonth()
, getDayOfWeek()
, getHour()
, getMinute()
, getSecond()
, etc. Aquí tienes un ejemplo:
1 2 3 4 5 6 7 8 9 10 11 |
import java.time.LocalDateTime; public class Main { public static void main(String[] args) { //obtiene la fecha y hora actuales LocalDateTime datetime = LocalDateTime.now(); // imprimir en formato ISO-8601 System.out.println(datetime); // 2017-12-24T16:34:27.598873800 } } |
Para obtener la fecha y hora actuales como una cadena formateada, podemos usar el DateTimeFormatter
clase de la java.time.format
paquete. Proporciona patrones predefinidos y personalizados para analizar y formatear la fecha y la hora. Podemos pasar el formateador al format()
metodo de la LocalDateTime
clase. He aquí un ejemplo:
1 2 3 4 5 6 7 8 9 10 11 |
import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; public class Main { public static void main(String[] args) { String dateTime = LocalDateTime.now().format(DateTimeFormatter.ISO_DATE_TIME); // 2017-12-24T04:34:27.0871036 System.out.println(dateTime); } } |
También podemos crear un formateador de fecha y hora personalizado sobre los formateadores de fecha y hora predefinidos usando el DateTimeFormatter.ofPattern()
método. He aquí un ejemplo:
1 2 3 4 5 6 7 8 9 10 11 |
import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; public class Main { public static void main(String[] args) { String dateTime = DateTimeFormatter.ofPattern("MMM dd yyyy, hh:mm:ss a") .format(LocalDateTime.now()); System.out.println(dateTime); // 24 de diciembre de 2017, 04:34:27 pm } } |
2. Usando ZonedDateTime
class
Para obtener la información de la zona horaria del reloj del sistema, considere cambiar a la java.time.ZonedDateTime clase. Proporciona métodos similares a los java.time.LocalDateTime
clase además de la información de zona horaria. Para obtener la fecha y hora actual del reloj del sistema en la zona horaria especificada, podemos especificar un ID de zona al ZonedDateTime.now()
método. Para formatear la fecha y hora, podemos especificar un formateador usando el format()
método. He aquí un ejemplo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
import java.time.ZoneId; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; public class Main { public static void main(String[] args) { //obtiene la fecha y hora actuales con la zona horaria predeterminada ZonedDateTime now = ZonedDateTime.now(); System.out.println(now); // 2017-12-24T15:24:27.787019Z[Etc/UTC] //obtiene la fecha y hora actuales con una zona horaria específica ZonedDateTime nowInParis = ZonedDateTime.now(ZoneId.of("Europe/Paris")); System.out.println(nowInParis); // 2017-12-24T17:24:27.810635+02:00[Europa/París] // usar formateadores de fecha y hora predefinidos String nowInChicago = ZonedDateTime.now(ZoneId.of("America/Chicago")) .format(DateTimeFormatter.ISO_DATE_TIME); // 2017-12-24T05:42:28.0871036-06:00[América/Chicago] System.out.println(nowInChicago); // usar formateadores de fecha y hora personalizados String nowInKolkata = ZonedDateTime.now(ZoneId.of("Asia/Kolkata")) .format(DateTimeFormatter.ofPattern("MM.dd.yyy, hh.mm.ss a")); System.out.println(nowInKolkata); // 24.12.2017, 17:34:27 } } |
3. Usando Date
class
Antes de Java 8, la solución estándar para obtener la fecha y hora actuales en Java era utilizar el java.util.Date objeto. Para inicializar un Date
objeto con la fecha y hora actuales con precisión de milisegundos, podemos llamar a su constructor sin ningún argumento. El Date
La clase es parte de la API heredada de fecha y hora de Java. He aquí un ejemplo:
1 2 3 4 5 6 7 8 |
import java.util.Date; public class Main { public static void main(String[] args) { Date date = new Date(); System.out.println(date); // Dom 24 de diciembre 16:34:27 PDT 2017 } } |
Para obtener la fecha y hora actuales en el formato especificado, podemos usar el java.text.SimpleDateFormat
clase. Nos permite formatear y analizar fechas con patrones predefinidos y definidos por el usuario para el formato de fecha y hora. He aquí un ejemplo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; public class Main { public static void main(String[] args) { // crear un formateador personalizado DateFormat dateFormat = new SimpleDateFormat("EEE, d MMM yyyy, HH:mm:ss z"); // formatea la fecha y hora actuales usando el formateador personalizado String date = dateFormat.format(new Date()); System.out.println(date); // Domingo, 24 de diciembre de 2017, 16:34:27 IST } } |
4. Hora de Joda
Las clases de fecha y hora estándar anteriores a Java 8 están mal diseñadas y contienen varios defectos. El Joda-Time La biblioteca de fecha y hora proporciona un reemplazo de alta calidad anterior a Java 8. Para obtener la fecha y hora completas con la zona horaria, podemos usar el DateTime
clase. La clase Joda-Time también admite la funcionalidad de zona horaria a través de la DateTimeZone
clase. He aquí un ejemplo:
1 2 3 4 5 6 7 8 9 10 11 |
import org.joda.time.DateTime; public class Main { public static void main(String[] args) { DateTime now = DateTime.now(); System.out.println(now); // 2017-12-24T16:34:27.459-08:00 DateTime nowInSydney = DateTime.now(DateTimeZone.forID("Australia/Sydney")); System.out.println(nowInSydney); // 2017-12-24T23:47:11.949+11:00 } } |
5. Uso Instant
class
los clase instantánea modela un punto instantáneo en la línea de tiempo, independiente de cualquier zona horaria o calendario. Para obtener el instante actual usando el reloj del sistema, podemos usar el Instant.now()
método. He aquí un ejemplo:
1 2 3 4 5 6 7 8 9 10 |
import java.time.Instant; public class Main { public static void main(String[] args) { //Obtiene el instante actual del reloj del sistema Instant instant = Instant.now(); System.out.println(instant); // 2017-12-24T12:05:28.940474900Z } } |
para obtener un Date
instancia de un Instant
objeto, podemos llamarlo Date.from()
método. He aquí un ejemplo:
1 2 3 4 5 6 7 8 9 10 |
import java.time.Instant; import java.util.Date; public class Main { public static void main(String[] args) { Date date = Date.from(Instant.now()); System.out.println(date); // viernes 24 de diciembre 16:34:27 PDT 2017 } } |
Se trata de obtener la fecha y hora actuales en Java.
Artículos Relacionados: