2012-05-08 10 views
5

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); 
関連する問題