Java 从android读取WCF REST日期

Java 从android读取WCF REST日期,java,android,.net,wcf,datetime,Java,Android,.net,Wcf,Datetime,在android程序上读取通过WCF REST服务发送的.NET日期时间的最简单方法是什么?日期按以下格式序列化:Data=/Date(1326273723507+0100)/ 有没有简单的方法来反序列化这些日期 谢谢。XML序列化程序使用Ticks属性序列化Datetime实例以获得最佳精度(Ticks是自0001年1月1日午夜12:00:00以来经过的100纳秒间隔数)。这是您在这里看到的数字,后跟+0100,表示GMT+1:00 要将刻度转换为有效的java日期,请参见Jon Skeet(

在android程序上读取通过WCF REST服务发送的.NET日期时间的最简单方法是什么?日期按以下格式序列化:Data=/Date(1326273723507+0100)/

有没有简单的方法来反序列化这些日期


谢谢。

XML序列化程序使用Ticks属性序列化Datetime实例以获得最佳精度(Ticks是自0001年1月1日午夜12:00:00以来经过的100纳秒间隔数)。这是您在这里看到的数字,后跟+0100,表示GMT+1:00

要将刻度转换为有效的java日期,请参见Jon Skeet(通往Jon Skeet的所有道路)的回答:


我遇到了完全相同的问题,我用简单的代码解决了它

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);
  }
}

如果您使用gson,您也可以使用该解决方案:

我正在向WCF REST服务发送和接收日期。在经历了从纪元到毫秒的大量转换(使用Jon Skeet的答案)之后,我决定将日期存储为Java长值(from date.getTime()),这样我就不会与Android设备进行任何转换。如果我需要在.NET端看到它们,那么我将进行转换。因此,如果您可以控制WCF端和数据库,请将它们保持为长的。

您希望在.NET端反序列化还是在android上反序列化?我希望在android上反序列化。类似的东西,希望有帮助。。。见: