Analizar formato de fecha personalizado usando JSON.Net

Estoy recibiendo una fecha JSON en el siguiente formato :

"launch_date": 1250553600 

¿Cómo debo modificar lo siguiente para incluir un analizador DateTime personalizado que me permita convertir ese número en un objeto DateTime ?

 JsonConvert.DeserializeObject(json); public sealed class NTask { public DateTime launch_date { get; set; } } 

Alternativamente, podría usar long y luego analizarlo en otro campo, pero preferiría evitar hacerlo y hacer que JsonConvert lo JsonConvert automáticamente a DateTime a través de algún convertidor.

Vas a querer usar un JSONConverter para ayudar a gestionar la traducción. Ver esta respuesta stackapps para más detalles.

Aquí hay un código para hacer eso:

 // This is an example of a UNIX timestamp for the date/time 11-04-2005 09:25. double timestamp = 1113211532; // First make a System.DateTime equivalent to the UNIX Epoch. System.DateTime dateTime = new System.DateTime(1970, 1, 1, 0, 0, 0, 0); // Add the number of seconds in UNIX timestamp to be converted. dateTime = dateTime.AddSeconds(timestamp); 

Para su código:

  JsonConvert.DeserializeObject(json); public sealed class NTask { public DateTime launch_date { get; set; } public void SetLaunchDate(int timestamp) { // First make a System.DateTime equivalent to the UNIX Epoch. var dateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0); // Add the number of seconds in UNIX timestamp to be converted. launch_date = dateTime.AddSeconds(timestamp); } } 

Luego, cuando esté deserializando el JSON, verifique si el launch_date es del tipo int o DateTime y cambie cómo configura el objeto según el tipo.