Establecer la zona horaria de un java.util.Date

Muhammad Zeeshan 12 octubre 2023
  1. Use ZonedDateTime para establecer la zona horaria de un java.util.Date
  2. Use UTC Instant para establecer la zona horaria de un java.util.Date
Establecer la zona horaria de un java.util.Date

Este tutorial rápido verá cómo usar Java para configurar la zona horaria asociada con una fecha. El java.util.Date no tiene zona horaria.

Denota el estándar UTC/GMT sin diferencia de zona horaria. Porque al crear una representación de cadena, su función toString utiliza la zona horaria predeterminada de la JVM como base para su aplicación.

Las clases integradas java.util.Date, .Calendar y java.text.SimpleDateFormat son generalmente difíciles de usar y deben evitarse. Usaremos el paquete java.time que viene estándar con Java 8 en su lugar.

A continuación se muestran las formas en que las clases java.time pueden representar una zona horaria.

Use ZonedDateTime para establecer la zona horaria de un java.util.Date

Aplicar una zona horaria, un desplazamiento y las pautas para tratar irregularidades como Horario de verano o DST es una mejor opción que la alternativa.

Cuando se utiliza un ZoneId con un Instant, se produce un ZonedDateTime. Asegúrese siempre de utilizar el nombre correcto para la zona horaria.

Nunca deben utilizarse abreviaturas de tres o cuatro letras, como EST, que no sean específicas ni estandarizadas.

ZoneId zId = ZoneId.of("Pakistan/Karachi");
ZonedDateTime zonedt = ZonedDateTime.ofInstant(instant, zId);

Use UTC Instant para establecer la zona horaria de un java.util.Date

Instant es el componente de construcción fundamental de java.time. Representa un “instante” en la línea de tiempo que se mide en UTC.

Implemente la mayor parte de la lógica de su aplicación utilizando objetos Instantáneos.

Instant instant = Instant.now();

FechaHoraLocal

Cuando cualquier texto que se analiza no incluye ningún indicador de desplazamiento o zona, debe interpretarse como LocalDateTime.

Si está seguro de la zona horaria que se debe usar, puede generar un ZonedDateTime asignando un ZoneId. Consulte el siguiente ejemplo de código.

LocalDateTime.parse("2022-09-10T01:13:15.123456789").atZone(ZoneId.of("Asia/Pakistan"))
Muhammad Zeeshan avatar Muhammad Zeeshan avatar

I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.

LinkedIn

Artículo relacionado - Java Date