Inicializar la fecha de JavaScript en una zona horaria en particular
-
Utilice los métodos
Intl.DateTimeFormat
yformat()
para inicializar la fecha de JavaScript en una zona horaria determinada -
Utilice el método
toLocaleString()
para inicializar la fecha de JavaScript en una zona horaria en particular
Este tutorial enseña cómo inicializar la fecha de JavaScript en una zona horaria en particular.
El objeto de fecha de JavaScript funciona con UTC internamente, pero muestra la salida de acuerdo con la hora local de la computadora operativa. El objeto de fecha no tiene ninguna noción de zonas horarias. No hay objetos de cadena declarados. Es solo una medida del número de milisegundos que han transcurrido desde 1970-01-01 00:00:00 UTC
. Al generar la hora, automáticamente tiene en cuenta la zona horaria local de la computadora y se aplica a la representación interna. No funciona con diferentes zonas horarias. Entonces, necesitamos la ayuda de funciones y bibliotecas externas para realizar tales operaciones.
Utilice los métodos Intl.DateTimeFormat
y format()
para inicializar la fecha de JavaScript en una zona horaria determinada
El objeto JavaScript Intl es la ayuda para la API de internacionalización de JavaScript. Nos proporciona muchas funciones para la conversión de fecha / hora, cadenas y números. El objeto Intl utiliza DateTimeFormat
para formatear cadenas de fecha y hora. Tiene un método de format
que toma la fecha y la convierte a una zona horaria diferente utilizando la configuración regional y las opciones proporcionadas como argumento para el formateador. Este método formateará la fecha a la zona horaria requerida y la convertirá en una cadena.
El parámetro que toma la función format()
es la fecha. Necesitamos los siguientes argumentos para la formación del objeto Intl.DateTimeFormat
:
locales
: es un conjunto de cadenas que contienen etiquetas de idioma y local. Normalmente, es un parámetro opcional pero es necesario para nuestro propósito. Para cambiar la zona horaria, solo podemos especificar el código de idioma BCP y la zona horaria requerida.opciones
: Es un objeto que se utiliza para especificar propiedades para realizar comparaciones. También es un parámetro opcional que se puede utilizar para especificar el estilo y las unidades de visualización. Algunas de las propiedades sonsecond
,minute
,hour
,day
,month
yyear
, etc.
Por ejemplo: podemos pasar un objeto de opciones como { hour: 'numeric', hour12: false, minute: 'numeric', timeZoneName: 'short'}
.
function changeTimezone() {
let date = new Date(Date.UTC(2021, 5, 28, 3, 0, 0));
console.log('Date in India: ' + date);
let formatter =
new Intl.DateTimeFormat('en-US', {timeZone: 'America/Denver'});
let usDate = formatter.format(date);
console.log('Date in USA: ' + usDate);
}
Producción
Date in India: Mon Jun 28 2021 08:30:00 GMT+0530 (India Standard Time)
VM1504:7 Date in USA: 6/27/2021
En la función anterior, primero creamos un objeto Date usando el constructor Date()
. Luego vamos y creamos un formateador usando Intl.DateTimeFormat
especificando la configuración regional, es decir, la etiqueta de idioma BCP
y la zona horaria
a la que queremos convertir. Luego usamos este formateador para convertir la fecha a la zona horaria requerida.
Utilice el método toLocaleString()
para inicializar la fecha de JavaScript en una zona horaria en particular
El método toLocaleString()
es el más utilizado para cambiar la zona horaria, ya que es más fácil de usar y se puede llamar directamente en una fecha. Funciona de la misma manera que el Intl.DateTimeFormat
. También toma la cadena de configuración regional y las opciones como argumentos y devuelve una cadena con fechas formateadas de acuerdo con ellas. La ventaja de este método es que, a diferencia del método anterior, convierte la hora de acuerdo con la zona horaria del país y la devuelve en la cadena.
function changeTimezone() {
let date = new Date(Date.UTC(2021, 5, 28, 3, 0, 0));
console.log('Date in India: ' + date);
let usDate = date.toLocaleString('en-US', {timeZone: 'America/New_York'});
console.log('Date in USA: ' + usDate);
}
Producción
Date in India: Mon Jun 28 2021 08:30:00 GMT+0530 (India Standard Time)
Date in USA: 6/27/2021, 11:00:00 PM
En la función anterior, primero creamos un objeto Date usando el constructor Date()
. Llamamos a la función toLocaleString
en la fecha que especifica la language tag
y la timeZone
y obtenemos la fecha / hora convertida a una zona horaria diferente.
Harshit Jindal has done his Bachelors in Computer Science Engineering(2021) from DTU. He has always been a problem solver and now turned that into his profession. Currently working at M365 Cloud Security team(Torus) on Cloud Security Services and Datacenter Buildout Automation.
LinkedIn