2012-09-10 43 views
0

日期格式從Web服務我在我的Android應用程序得到一個日期格式1994-09-11我需要顯示這是Sep 11無法改變的Android

我的代碼如下

Date date_temp = null; 
String d_temp = null; 
DateFormat formatter; 
static SimpleDateFormat datesdf = new SimpleDateFormat("yyyy MMM dd"); 

public String changeDateformat(String date_str) 
    { 
     Log.e("date_str ",""+date_str); 
     try 
     { 
      date_temp = (Date)formatter.parse(date_str); 
      Log.e("date_temp ",""+date_temp); 
      d_temp = null; 
      d_temp = datesdf.format(date_temp); 
      Log.e("d_temp ",""+d_temp); 
     } 
     catch (ParseException ex) 
     { 
      ex.printStackTrace(); 
     } 
     catch (java.text.ParseException e) 
     { 
      e.printStackTrace(); 
     } 
     return d_temp; 
    } 

當上述方法被調用時,第一個日誌值被打印出來,然後我的應用進行了崩潰(這是我從網上獲取的價值)說,

09-10 13:02:44.920: E/AndroidRuntime(3503): java.lang.NullPointerException 
09-10 13:02:44.920: E/AndroidRuntime(3503): at xxxxxxxxxxx(Events.java:206) 

這裏行第206行是上述方法中的第一行嘗試捕獲。 我的代碼有什麼問題,請告訴我.....

回答

2

DateFormat formatter; < - 它從未初始化。所以你在null上調用一個方法。

也許你想使用:

static SimpleDateFormat datesdf = new SimpleDateFormat("yyyy MMM dd");

格式代替。

+0

感謝名單很多,我都注意到 –

0

DateFormat不會像那樣使用。你聲明一個格式化程序,但從不初始化它。要格式化的日期,你需要做的是這樣的,

d_temp = DateFormat.format("MMM dd", date_temp).toString(); 

您需要的SimpleDateFormat你的日期字符串轉換爲日期和其他的SimpleDateFormat你的日期格式,以一個新的字符串。試試這個代碼,

public static Date strToDate(String format, String date) { 
    SimpleDateFormat sdf = new SimpleDateFormat(format); 
    try { 
     return sdf.parse(date); 
    } catch (ParseException e) { 
     return null; 
    } 
} 

public String changeDateformat(String date_str) { 
    Date t = strToDate("yyyy-MM-dd", date_str); 
    return DateFormat.format("MMM dd", t).toString(); 
} 
2

您可以使用字符串生成器 從網絡 越來越日後試試這個

//不管你想要的設置,你可以設置如下:

enter code here 
EditText aa; 
aa.setText( new StringBuilder() 
      // Month is 0 based so add 1 
      .append(day).append("/") 
      .append(month + 1).append("/") 
      .append(year).append(" ")); 
+1

以上也是可以的... gud one –