2012-05-08 49 views
5

我試圖在android中顯示使用DatePicker選擇年份,月份和日期的日期。我遇到的問題是選擇年份,月份和日期,並以正確的格式顯示在屏幕上,而不顯示時間。僅顯示日期,沒有時間在Android中

現在的代碼將正確顯示日期,但它也顯示時間。

StringBuilder string = new StringBuilder() 
    // Month is 0 based so add 1 
    .append(mYear).append("-") 
    .append(mMonth + 1).append("-") 
    .append(mDay); 

    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); 

    try { 
     Date date = format.parse(string.toString()); 
     mDateDisplay.setText(date.toLocaleString()); 
    } catch (ParseException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

mDateDisplay是一個TextView。

我不知道如何擺脫也顯示的時間。我已經做了大量的搜索和閱讀文檔,我無法弄清楚。任何幫助,將不勝感激。

回答

6
java.text.DateFormat dateFormat = android.text.format.DateFormat.getDateFormat(getContext()); 
mDateDisplay.setText(dateFormat.format(date)) 

這將考慮用戶區域設置並僅顯示日期。

下面是相關文檔:getDateFormat(Context context)

3
android.text.format.DateFormat df = new android.text.format.DateFormat(); 
df.format("yyyy-MM-dd", new java.util.Date()); 

android.text.format.DateFormat.format("yyyy-MM-dd", new java.util.Date()); 

請參閱本LINK

更新 ::

你也可以使用formatter只得到日期如下::

mDateDisplay.setText(String.format("%1$tY %1$tb %1$td", date)); 
+1

這並沒有考慮到手機的語言環境。 – Lukazoid

0

我花時間在這,終於找到解決辦法。

String datemillis = cursor.getString(cursor.getColumnIndex("field name on table")); 
      SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 



      try { 
       Date date = null; 
       date = df.parse(datemillis); 
       SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 
       String shortTimeStr = sdf.format(date); 
       System.out.println(shortTimeStr); 
       Y=shortTimeStr; 
      } catch (ParseException e) { 
       // To change body of catch statement use File | Settings | File Templates. 
       e.printStackTrace(); 
      } 
       Toast.makeText(getApplicationContext(),Y, Toast.LENGTH_LONG).show(); 
0

這個工作對我來說:

0

試試這個代碼

long date = System.currentTimeMillis(); 
     SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy"); 
     SimpleDateFormat timeonly = new SimpleDateFormat("hh:mm"); 
     String dateString = sdf.format(date); 
     String timeString = timeonly.format(date); 
     //show present date 
     textView.setText(dateString); 

     //show present time 
     TextView.setText(timeString);