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:
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:
- Java: ejemplos de formato de fecha
- Java: formato de fecha de validación
- Java: agrega días a la fecha actual
- Java – Comparación de fechas
- Java – Fecha de análisis