2012-05-28 40 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);