Creo que me falta algo obvio aquí. Cuando solicito una respuesta JSON de un servicio OData, obtengo un resultado diferente para las propiedades de DateTime que cuando hago una solicitud de XML. Utilizaré el feed NerdDinner OData como ejemplo.Cómo manejar json DateTime devuelto por WCF Data Services (OData)
JSON:
http://www.nerddinner.com/Services/OData.svc/Dinners(1)?$format=json
"EventDate": "\/Date(1235764800000)\/"
XML:
http://www.nerddinner.com/Services/OData.svc/Dinners(1)
<d:EventDate m:type="Edm.DateTime">2009-02-27T20:00:00</d:EventDate>
Cuando hago una alerta (new Date (1235764800000)) me sale este resultado:
I También obtengo un resultado de 8PM cuando ejecuto la misma consulta con LINQPad. ¿Por qué la zona horaria es incorrecta en el resultado de JSON? Parece suponer que la respuesta está en GMT. ¿Debo manejar esto en el cliente (a través de javascript) o es algo que puedo configurar en el servidor?
Estoy usando jQuery en el cliente y WCF Data Services (y Entity Framework) en el servidor.
Actualización:
estoy usando Datejs en el lado del cliente para manejar el formato de fecha y hora UTC. Me pregunto si esta es la forma correcta de resolver este problema.
function getDateString(jsonDate) {
if (jsonDate == undefined) {
return "";
}
var utcTime = parseInt(jsonDate.substr(6));
var date = new Date(utcTime);
var minutesOffset = date.getTimezoneOffset();
return date.addMinutes(minutesOffset).toString("M/d/yyyy h:mm tt");
}