2012-05-28 41 views
0

我有我的JSON字符串我从ASP.NET转换一个小问题。JSON日期从ASP转换 - 需要转换为Java

的JSON字符串,C#已经转变对我来说是这样的:/Date(1338199919727)\/

我猜它转换成毫秒或东西,但我怎么得到Java的日期了这个巨大的整数?

我需要在我的Android应用程序中正确显示日期(作为特定格式的字符串(dd-MM-yyyy:HH),这就是为什么我需要它在Java中。某种形式的转换自己的,并找出如何做到这一点还是有这样的一些甜蜜的,简单的方法

+0

Android有一个内置JSON解析器。 – BalusC

回答

1

but how do i get a java-date out of this huge integer?

啊,那部分很简单:??

Date dt = new Date(1338199919727L); 

你说的很对,这是以来的毫秒数最大纪元(午夜,1970年1月1日)。而Java的Date对象has a constructor接受这个价值。

一般来说,大多数JSON解析器有一个“齐磊”功能或类,你可以传递给他们,因为JSON被反序列化可以让你预先过程值的概念。我不太了解Android的JSON解析器,知道它是否有。如果没有(这可能会稍微落后一点),那么您必须遍历结果对象图,以查找已成为字符串的属性并将它们转换为事后的日期。

+0

如果真的那么简单。 您发布的行给出follwing错误: int类型的文字1338199919727超出范围 编辑 - 即使我投数(长)构造函数中,它给人的错误。 –

+1

@MartinHansen:好的,你不会使用字面意思,对吗? :-)但你是正确的,你会想从字符串的数字转换成'long'('Long.parseLong',大概),而不是一个'int',并传递。我已经将所需的'L'添加到上面的文字中。 :-) –

+0

干杯队友!我不知道你能做到这一点,你是一个救生员。 :) –

0

我希望这是你所需要的

long Ldate = 1338199919727L; 
    Date date = new Date(Ldate * 1000); 
    String strdate = (String) DateFormat.format("MM/dd/yy h:mmaa", date);