Este tutorial le ayudará a obtener la hora, la fecha y el día actuales en cualquier formato para una determinada zona horaria en Java.
Aquí hay algunas identificaciones de algunos municipios Zonas horarias en los Estados Unidos:

Zona horaria ID de zona horaria de Java
Hora estándar de Hawai Estados Unidos / Hawái
Hora estándar de Alaska Estados Unidos / Alaska
Hora estándar del Pacífico Estados Unidos / Pacífico
Hora estándar de montaña Estados Unidos / Montaña
Hora solar central Estados Unidos / Central
hora estándar del Este Estados Unidos / Este

Java 6 pone a disposición 575 ID de zona horaria diferentes en lugares de todo el mundo. Se recomienda que utilice las ID de zona horaria de Java mencionadas en la tabla anterior, en lugar de utilizar abreviaturas de zona horaria de tres letras como “EST”, “PDT”, etc. Ya que no son únicos en su uso en todo el mundo.

Por ejemplo, CST puede ser tanto la hora estándar central como la hora estándar de China.

Aunque Java todavía puede reconocerlos por su compatibilidad con Java 1.1, el uso de estas abreviaturas en los JRE puede producir resultados impredecibles. Java utiliza actualmente la “base de datos tz” para la lista de zonas horarias de una ubicación en particular.

Código de muestra para obtener la lista de zonas horarias en los Estados Unidos:

Para fines de aprendizaje, se usó “US / Eastern” en el código del siguiente ejemplo. Las funciones utilizadas en debajo del código completo, toma los valores de formato de fecha y zona horaria. El usuario debe decidir el formato en el que se requiere el valor de fecha / día / hora y la zona horaria de destino. Para el formato de la fecha, puede consultar el formato de la fecha en java.

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;

public class ObtainDate
{
   public static void main(String[] args)
   {
      ObtainDate obtainDate = new ObtainDate();
      TimeZone timeZone = TimeZone.getTimeZone("US/Eastern");
      String dateFormat = "MMMM dd,yyyy G"; //MMMM dd,yyyy G
      String timeFormat = "hh:mm:ss.SSS a zzzz";
      String dayFormat = "EEEEEE";
      System.out.println("Todays Day:" + obtainDate.getTodaysDay(dayFormat,timeZone));
      System.out.println("Todays Date:" + obtainDate.getTodayDate(dateFormat,timeZone));
      System.out.println("Current Time:" + obtainDate.getCurrentTime(timeFormat,timeZone));
  }

  /**
   * Description - Method to Get Today's day
   * @author Chaitanya
   * @param dateFormat
   * @param TimeZone
   */
  public String getTodaysDay(String dayFormat, TimeZone timeZone)
  {
      Date date = new Date();
      /* Specifying the format */
      DateFormat requiredFormat = new SimpleDateFormat(dayFormat);
      /* Setting the Timezone */
      requiredFormat.setTimeZone(timeZone);
      /* Picking the day value in the required Format */
      String strCurrentDay = requiredFormat.format(date).toUpperCase();
      return strCurrentDay;
   }

   /**
    * Description - Method to Get Current time
    * @author Chaitanya
    * @param dateFormat
    * @param TimeZone
    */
   public String getCurrentTime(String timeFormat, TimeZone timeZone)
   {
      /* Specifying the format */ 
      DateFormat dateFormat = new SimpleDateFormat(timeFormat);
      /* Setting the Timezone */
      Calendar cal = Calendar.getInstance(timeZone);
      dateFormat.setTimeZone(cal.getTimeZone());
      /* Picking the time value in the required Format */
      String currentTime = dateFormat.format(cal.getTime());
      return currentTime;
   }

   /**
    * Description - Method to Get Today's date
    * @author Chaitanya
    * @param dateFormat
    * @param TimeZone
    */
   public String getTodayDate(String dateFormat, TimeZone timeZone)
   {
       Date todayDate = new Date();
       /* Specifying the format */
       DateFormat todayDateFormat = new SimpleDateFormat(dateFormat);
       /* Setting the Timezone */
       todayDateFormat.setTimeZone(timeZone);
       /* Picking the date value in the required Format */
       String strTodayDate = todayDateFormat.format(todayDate);
       return strTodayDate;
   }
}

Producción:

Todays Day:THURSDAY
Todays Date:October 19,2017 AD
Current Time:12:15:44.232 PM Eastern Daylight Time

Pasos involucrados:

leer  Java LocalDate

Los pasos básicos para calcular el día / fecha / hora en una zona horaria en particular:

  • Obtener un nuevo objeto de fecha
  • Se crea un objeto de formato de fecha en el formato de fecha simple
  • El formato requerido se asigna al objeto de formato de fecha, por ejemplo: hh: mm: ss.SSS
  • Establecer la zona horaria requerida en el objeto de formato de fecha
  • Elija el valor de día / fecha / hora del objeto de formato de fecha pasando el objeto de fecha creado en el primer paso.

La siguiente tabla proporciona los distintos patrones de fecha y sus significados en el formato de marca de tiempo de Java:

Plantilla Denota
aaaa Año corriente
MM Mes actual en número
mmm Mes actual abreviado
MMMM Mes actual completo
dd Fecha actual del mes
DD Día actual del año
S.S Hora actual (reloj de 12 horas)
S.S Hora actual (reloj de 24 horas)
a AM PM
mm Minuto de la hora actual
ss Segundo de la hora actual
SSS Milisegundos de la hora actual (el número de SSS se puede incrementar para obtener la fracción del segundo)
GRAMO. Época
zzz Zona horaria reducida
zzzz Zona horaria completa
EEEEEE Día actual en su totalidad
EEE Día actual abreviado

Una referencia como aaaa.MM.dd G hh: mm: ss produciría una salida como 2011.11.07 d.C. 13:11:57. Al mismo tiempo, aaaa.MMM.DD G HH: mm.SSS produciría una salida de 2011. Julio de 194 DC 23: 11.938.

Referencias:

Artículos Relacionados:

  1. Java: ejemplos de formato de fecha
  2. Java: formato de fecha de validación
  3. Java: agrega días a la fecha actual
  4. Java – Comparación de fechas
  5. Java – Fecha de análisis
leer  Compara dos fechas entre sí en Java

Por avivcas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *