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

280
Visualizações
Parsing a JSON date into a C# DateTime

i have an API that get information from targetProcess and put that information in sql tables.

the issue comes when a targetProcess field is date because i recieved it as json date "/Date(1409202000000-0500 )/".

How can i convert this json date to Datetime in c#?

i have been trying add extra quotes like the asnwer in this StackOverflow Post but it doesnt work.

i tried replace the the word Date for only use 1409202000000-0500 in

DateTime dotNetDate = new DateTime(1970, 1, 1);
dotNetDate = dotNetDate.AddMilliseconds(Convert.ToInt64(1409202000000-0500) 

i use too JSON.NET as bellow

string sa = "/Date(1409202000000-0500 )/"
DateTime dt = new DateTime();
dt = JsonConvert.DeserializeObject<DateTime>(sa);

but it doesnt work too,

so the question is....How can i convert this json date to Datetime in c#?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

You need to manually wrap your string "programatically" in quotes to ensure that it properly formatted correctly:

string sa = @"""" + "/Date(1409202000000-0500 )/" + @"""";
DateTime dt = JsonConvert.DeserializeObject<DateTime>(sa);

If you need to call it multiple times (which it seems like you do), just move the wrapping responsibility to a method:

public string WrapStringInQuotes(string input)
{
    return @"""" + input + @"""";
}
over 4 years ago · Santiago Trujillo Relatório

0

The issue is with your date string. instead of

string sa = "/Date(1409202000000-0500 )/"

try

string sa = @"""/Date(1409202000000-0500)/""";

Change your code :

 string sa = @"""/Date(1409202000000-0500)/""";
            DateTime dt = new DateTime();
            dt = JsonConvert.DeserializeObject<DateTime>(sa);
            // dt = "2014-08-28 3.00.00 PM"
over 4 years ago · Santiago Trujillo Relatório

0

Here you have my function. There is even a possibility that you can get a shorter number for the Json date like in OpenweatherAPI for sunrise and sunset, then in this case you need to multiplicate with 1000. My function handle both scenarios.

    public static DateTime GetDateTimeFromJSON(long jsonDateTime, bool shorter = false)
    {
        return JsonConvert.DeserializeObject<DateTime>($"\"\\/Date({ (shorter ? jsonDateTime * 1000 : jsonDateTime) })\\/\"", new JsonSerializerSettings
        {
            DateFormatHandling = DateFormatHandling.MicrosoftDateFormat
        }).ToLocalTime();
    }
over 4 years ago · Santiago Trujillo 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