using System.Text.RegularExpressions;
public static void Main()
var data = "/Date(1638556214680-0300)/";
var alexData = Program.AlexDataDeString(data);
var dataCorreta = Program.DataDeString(data);
Console.WriteLine("Alex data: " + alexData);
Console.WriteLine("data correta: " + dataCorreta);
public static DateTime? DataDeString(string DHIniciado)
var dhRegex = new Regex(@"(-?\d+)([+-]{1})(\d{2})(\d{2})");
var dhMatch = dhRegex.Match(DHIniciado);
var unixTime = Convert.ToInt64(dhMatch.Groups[1].Value);
var offsetSignal = dhMatch.Groups[2].Value;
var offsetHours = Convert.ToInt32(dhMatch.Groups[3].Value);
var offsetMinutes = Convert.ToInt32(dhMatch.Groups[4].Value);
offsetHours = 0 - offsetHours;
offsetMinutes = 0 - offsetMinutes;
var data = new DateTime(1970, 1, 1);
data = data.AddMilliseconds(unixTime);
data = data.AddHours(offsetHours);
data = data.AddMinutes(offsetMinutes);
public static DateTime AlexDataDeString(string DHIniciado)
DHIniciado = DHIniciado.Replace(@"/Date(","");
DHIniciado = DHIniciado.Replace(@"-0000)/","");
DHIniciado = DHIniciado.Replace(@"-0100)/","");
DHIniciado = DHIniciado.Replace(@"-0200)/","");
DHIniciado = DHIniciado.Replace(@"-0300)/","");
DHIniciado = DHIniciado.Replace(@"/","");
DHIniciado = DHIniciado.Replace(@"-","");
DHIniciado = DHIniciado.Replace(@"(","");
DHIniciado = DHIniciado.Replace(@")","");
DHIniciado = DHIniciado.Replace(@" ","");
Console.WriteLine(DHIniciado);
DateTime dotNetDate = new DateTime(1970, 1, 1);
dotNetDate = dotNetDate.AddMilliseconds(Convert.ToInt64(DHIniciado));