Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

344
Visualizações
¿Cómo se puede usar "Hora estándar romántica" para establecer la zona horaria?

Tengo la cadena de fecha UTC "2022-01-06T13:35:00Z" y la cadena de zona horaria "Romance Standard Time" . ¿Cómo puedo usar esa cadena de zona horaria en JavaScript (en un navegador) para que pueda corregir la hora a las 14:35 ?

Las bibliotecas de zona horaria que he encontrado hasta ahora usan la zona horaria de la IANA, por ejemplo, "Europe/Copenhagen" , por lo que una biblioteca que pueda convertir "Romance Standard Time" en algo como "Europe/Paris" también respondería a mi pregunta. Es aceptable que esta conversión se realice en .NET y no en JavaScript.

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

JavaScript

Si desea hacerlo con Javascript, hay varias bibliotecas. Estoy más familiarizado con moment.js , sin embargo, están en desuso, lo que significa que es posible que desee usar otra biblioteca si está trabajando en un nuevo proyecto.

Lista de bibliotecas sugeridas por moment.js .

De todos modos, si desea trabajar con momento y convertir a zonas horarias, puede hacerlo fácilmente usando Moment-Timezone . Todas las zonas horarias admitidas .

Por ejemplo:

 const moment = require('moment-timezone'); const timeZone = "Europe/Paris"; const ISOString = "2022-01-06T13:35:00Z"; //2022-01-06T13:35:00Z const momentDefault = moment(ISOString).format(); //2022-01-06T14:35:00+01:00 const momentTz = moment.utc(ISOString).tz(timeZone).format(); //2022-01-06T14:35:00+01:00

Como puede ver, moment obtiene la zona horaria de forma predeterminada y maneja ISOString como un valor UTC, por lo que convierte automáticamente el valor a la zona horaria del usuario del cliente.

Todavía puede indicar específicamente el momento para manejar ISOString como UTC ISOString y luego convertirlo a una zona horaria específica que definió. De esa forma se ignorará la zona horaria del cliente.

EDITAR: Ahora me di cuenta de que el interrogador quiere convertir la zona horaria de Windows a Iana antes de convertirla en Javascript, porque la mayoría de las bibliotecas, incluido Moment.js, no admiten las identificaciones de zona horaria de Windows.

Encontré una buena biblioteca aquí .

Y aquí hay un ejemplo de cómo convertir la zona horaria primero y luego usar moment.js.

 import { findIana } from 'windows-iana'; const moment = require('moment-timezone'); const result = findIana('Romance Standard Time'); console.log(result); // ['Europe/Paris', 'Europe/Brussels', 'Europe/Copenhagen', 'Europe/Madrid', 'Africa/Ceuta'] const timeZone = result[0]; //doesn't really matter which one to take, if you are just converting the times. const ISOString = "2022-01-06T13:35:00Z"; //2022-01-06T13:35:00Z const momentDefault = moment(ISOString).format(); //2022-01-06T14:35:00+01:00 const momentTz = moment.utc(ISOString).tz(timeZone).format(); //2022-01-06T14:35:00+01:00

.NET C#

Para convertir una hora a una zona horaria específica en C#, no necesita ningún paquete adicional, simplemente puede hacerlo de la siguiente manera:

 var isoString = "2022-01-06T13:35:00Z"; var utcDate= DateTime.Parse(isoString); var timeZone = "Romance Standard Time"; var date = TimeZoneInfo.ConvertTime(utcDate, TimeZoneInfo.FindSystemTimeZoneById(timeZone)); //01/06/2022 14:35:00

Aquí puede encontrar una lista de todos los timezoneId compatibles

about 4 years ago · Juan Pablo Isaza Relatório

0

La clave fue entender que "Romance Standard Time" es una ID de zona horaria de Windows . Todos los demás utilizan los ID de zona horaria de la IANA . Tienen el formato de región/ciudad, por ejemplo, "Europe/Copenhagen" .

En .NET 6 es posible convertir entre los formatos. Este es el ejemplo de código de Mejoras de fecha, hora y zona horaria en .NET 6 .

 // Conversion from Windows to IANA when a region is unknown. string windowsTimeZoneId = "Eastern Standard Time"; if (!TimeZoneInfo.TryConvertWindowsIdToIanaId( windowsTimeZoneId, out string ianaTimeZoneId)) { throw new TimeZoneNotFoundException( $"No IANA time zone found for "{windowsTimeZoneId}"."); } Console.WriteLine($"{windowsTimeZoneId} => {ianaTimeZoneId}"); // "Eastern Standard Time => America/New_York"
 // Conversion from Windows to IANA when a region is known. string windowsTimeZoneId = "Eastern Standard Time"; string region = "CA"; // Canada if (!TimeZoneInfo.TryConvertWindowsIdToIanaId( windowsTimeZoneId, region, out string ianaTimeZoneId)) { throw new TimeZoneNotFoundException( $"No IANA time zone found for "{windowsTimeZoneId}" in "{region}"."); } Console.WriteLine($"{windowsTimeZoneId} + {region} => {ianaTimeZoneId}"); // "Eastern Standard Time + CA => America/Toronto"

Si tiene una versión anterior de .NET, puede usar TimeZoneConverter . Aquí hay una lista completa de las zonas horarias en caso de que necesite crear su propio convertidor: windowsZones.json .

Esta respuesta a esta pregunta sugiere usar NodaTime, por lo que probablemente también sea una posibilidad: ¿Convertir la zona horaria de Windows en la zona horaria de moment.js?

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda