El siguiente artículo representa un ejemplo el cual está desarrollado en C# y compilado en . Net v 4.7.2, se representa el uso de los diferentes Husos Horarios tomando en cuenta el Tiempo Universal Coordinado (UTC) y haciendo uso del TimeZone Windows.
Aviso Importante!!
Por disposición del SAT se implementa Tiempo del Noroeste el cual NO cuenta actualmente con un TimeZone definido, los municipios Ensenada, Tecate, Tijuana y Playas del Rosarito deberán definir una que se adapte a su hora.
NOTA: El TimeZone que especifique en su código depende del Sistema Operativo con el que trabaje su servidor o equipo local donde se localice su aplicación la cual genere la fecha de los XML.
Para evitar variaciones en la hora de su XML se recomienda que su servidor se encuentre sincronizado con un servidor NTP.
Para más información de NTP puede consultar los siguientes enlaces.
https://developers.google.com/time/
http://www.cenam.mx/hora_oficial/sincronia.aspx
Código
//THIS SOFTWARE IS PROVIDED “AS IS” AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
//ESTE SOFTWARE SE ENTREGA “COMO ESTÁ” Y SIN NINGUNA GARANTÍA EXPRESA O IMPLÍCITA, INCLUYENDO, SIN LIMITACIÓN, LAS GARANTÍAS IMPLÍCITAS DE COMERCIALIZACIÓN Y APTITUD PARA UN PROPÓSITO PARTICULAR.
using System;
public class Program
{
public static void Main()
{
DateTime fechaHoraUtcActual = DateTime.UtcNow;
string formatoFecha = "yyyy-MM-ddTHH:mm:ss";
string zonaHorariaWindows;
DateTime fechaHoraConversion;
zonaHorariaWindows="Pacific Standard Time (Mexico)";
fechaHoraConversion = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(fechaHoraUtcActual,zonaHorariaWindows);
Console.WriteLine(fechaHoraConversion.ToString(formatoFecha) + " - Tijuana, Baja California");
zonaHorariaWindows="US Mountain Standard Time";
fechaHoraConversion = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(fechaHoraUtcActual,zonaHorariaWindows);
Console.WriteLine(fechaHoraConversion.ToString(formatoFecha) + " - Hermosillo, Sonora");
zonaHorariaWindows="Mountain Standard Time (Mexico)";
fechaHoraConversion = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(fechaHoraUtcActual,zonaHorariaWindows);
Console.WriteLine(fechaHoraConversion.ToString(formatoFecha) + " - Chihuahua, Chihuahua");
zonaHorariaWindows="Mountain Standard Time";
fechaHoraConversion = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(fechaHoraUtcActual,zonaHorariaWindows);
Console.WriteLine(fechaHoraConversion.ToString(formatoFecha) + " - Cd Juarez, Chihuahua");
zonaHorariaWindows="Central Standard Time (Mexico)";
fechaHoraConversion = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(fechaHoraUtcActual,zonaHorariaWindows);
Console.WriteLine(fechaHoraConversion.ToString(formatoFecha) + " - Saltillo, Coahuila");
zonaHorariaWindows="Central Standard Time";
fechaHoraConversion = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(fechaHoraUtcActual,zonaHorariaWindows);
Console.WriteLine(fechaHoraConversion.ToString(formatoFecha) + " - Piedras Negras, Coahuila");
zonaHorariaWindows="Eastern Standard Time (Mexico)";
fechaHoraConversion = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(fechaHoraUtcActual,zonaHorariaWindows);
Console.WriteLine(fechaHoraConversion.ToString(formatoFecha) + " - Chetumal, Quintana Roo");
}
}
Respuesta:
Fuente: https://dotnetfiddle.net/Q88zUa
Este ejemplo es una representación de uso de las herramientas o librerías propias del lenguaje o sistema operativo para obtener la hora local de diferentes husos horarios, en caso de que el desarrollador utilice este código deberá tener en cuenta que tiene que adaptarlo a sus necesidades y estar al pendiente de las actualizaciones de los TimeZones del sistema operativo, Facturador.com no se hace responsable por fallas en sus códigos.
Esperamos que la información proporcionada sea de ayuda, si necesita asesoría, contáctenos:
(998) 872 32 93 ext. 128
WhatsApp (998) 134 6403
Comentarios