using System.Globalization;
public static string GetDateToZone(string fechaAConvertir, string timezone){
var hotelLocalTimeZone = TimeZoneInfo.FindSystemTimeZoneById(timezone);
int hora = hotelLocalTimeZone.BaseUtcOffset.Hours;
int minutos = hotelLocalTimeZone.BaseUtcOffset.Minutes;
string zonaHorariaStr = hora.ToString((hora>=0?"+":"")+"00") +":"+ minutos.ToString("00");
return fechaAConvertir+zonaHorariaStr;
public static DateTime ConverToUTC0(string fecha){
string[] format = {"yyyy-MM-dd HH:mm:ssK"};
bool result = DateTime.TryParseExact(fecha, format, CultureInfo.InvariantCulture, DateTimeStyles.None, out dateValue);
var localTimeOffset = new DateTimeOffset(dateValue);
var finalDateTimeUtc0 = localTimeOffset.ToOffset(TimeSpan.Zero);
Console.WriteLine("No se ha reconocido el formato de la fecha");
public static void Main()
string fechaInicial = "2019-02-03 00:00:00";
string zonaHoraria = "Central Standard Time (Mexico)";
string fecha = GetDateToZone(fechaInicial, zonaHoraria);
Console.WriteLine("Fecha Inicial: "+fecha+" ("+zonaHoraria+")");
Console.WriteLine("Fecha Final : "+ConverToUTC0(fecha).ToString("yyyy-MM-dd HH:mm:ssK"));