2012-01-12 18 views
7

¿Cuál es la forma más fácil de leer un .NET DateTime enviado a través de un servicio WCF REST en un programa de Android? Las fechas se serializan en el siguiente formato: Datos =/Fecha (1326273723507 + 0100)/Lea la fecha de WCF REST desde android

¿Existe alguna manera fácil de deserializar estas fechas?

Gracias.

+0

Quieres deserializar en .NET Side o en Android – Rajesh

+0

Quiero deserializar en android. –

+1

Algo similar, espero que ayude ... http://stackoverflow.com/questions/5671373/unparseable-date-1302828677828-trying-to-deserialize-with-gson-a-millisecond – Rajesh

Respuesta

7

Bueno, yo tenía exactamente el mismo problema, lo resolví con ese código simple

public class Json { 

    /** 
    * Convertit une date Json en java.util.Date 
    * @param jsonDate 
    * @return 
    */ 
    public static Date JsonDateToDate(String jsonDate) 
    { 
    // "/Date(1321867151710+0100)/" 
    int idx1 = jsonDate.indexOf("("); 
    int idx2 = jsonDate.indexOf(")") - 5; 
    String s = jsonDate.substring(idx1+1, idx2); 
    long l = Long.valueOf(s); 
    return new Date(l); 
    } 
} 

si utiliza GSON, también se puede utilizar esa solución: gson serialization of Date field in MS WCF compatible form

4

El serializador XML serializa las instancias de Datetime usando la propiedad Ticks para la mejor precisión (las Ticks son el número de intervalos de 100 nanosegundos que han transcurrido desde las 12:00:00 de la medianoche del 1 de enero de 0001). Es el número que está viendo aquí, seguido de 0100 lo que significa GMT + 1:00

Para traducir las garrapatas en una fecha válida java, ver Jon Skeet (Todos los caminos conducen a Jon Skeet) responder aquí:

C# DateTime.Ticks equivalent in Java

0

Estoy enviando y recibiendo fechas a/desde un servicio WCF REST. Después de mucho rebuscar en torno a la conversión de ticks a milisegundos desde la Época (usando la respuesta de Jon Skeet), decidí simplemente almacenar las fechas como los valores largos de Java (de date.getTime()) para que no haga ninguna conversión ay desde el dispositivo Android. Si necesito verlos en el lado de .NET, entonces haré la conversión. Por lo tanto, si tiene control sobre el final de WCF y la base de datos, consérvelos tan largos.

Cuestiones relacionadas