2015-03-03 26 views
0

我與服務器通信,我得到這種類型的JSON響應:轉換數日在java中

WeekEndingDate=/Date(1428638400000-0400)/

從落後的日期得到這個號碼的功能是:

function ParseJSONDate(value) { 
    return JSON.parseWithDate(JSON.stringify(value)).format("mm/dd/yyyy"); 
} 

我的問題是:如何取回日期,格式爲mm/dd/yyyy,該值爲(/Date(1428638400000-0400)/)

回答

2

如果我不犯錯誤字符串 「1428638400000-0400」 代表了兩個信息:

  • 1428638400000:毫秒
  • 數量
  • 0400:小時

所以用' - '分割後。您可以創建日期:

Date d = new Date ("1428638400000"); 

之後,您可以使用DateFormat進行打印。 希望這有助於

+0

'日期(字符串)'被棄用。 – 2015-03-03 10:08:06

+0

你可以將「1428638400000」轉換成長 – vincent 2015-03-03 10:08:51

+0

是的,當然,這說得更好;) – 2015-03-03 10:09:42

-2

試試這個下面的代碼...

public static Date convertMillisecondsTodate(int givenMilliseconds) { 
    String convertedMilliSeconds = Integer.toString(givenMilliseconds) 
      .concat("000"); 

    /* DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy"); */ 

    long milliSeconds = Long.parseLong(convertedMilliSeconds); 

    Calendar calendar = Calendar.getInstance(); 
    calendar.setTimeInMillis(milliSeconds); 
    Date date = new Date(milliSeconds); 

    return date; 

} 
+0

這在至少三種方式中是錯誤的。 – 2015-03-05 03:45:24

1

可以使用SimpleDateFormat$parse()方法,以獲得一個Date對象,然後與所需格式重新格式化。解析格式是以下形式:

  • ssssssssss(10 'S'):日期 - 時間(秒)
  • SSS:毫秒
  • Z:時區,這是 「-0400」 中的示例。

String input = "1428638400000-0400"; 
SimpleDateFormat inputFormat = new SimpleDateFormat("ssssssssssSSSZ"); 
Date myDate = inputFormat.parse(input); 

SimpleDateFormat outputFormat = new SimpleDateFormat("MM/dd/yyyy"); 
String myDateAsString = outputFormat.format(myDate); 
System.out.println(myDateAsString); 

=> 04/10/2015