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です。

表示されている時間を取り除く方法がわかりません。私はかなりの量のドキュメントを検索して読んだのですが、それを理解できませんでした。どんな助けでもいただければ幸いです。

4

5 に答える 5

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

これにより、ユーザーのロケール設定が考慮され、日付のみが表示されます。

関連ドキュメントは次のとおりです: getDateFormat(Context context)

于 2012-05-08T16:23:45.987 に答える
2
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());

このリンクを参照してください

更新::

以下のようにフォーマッタを使用して日付のみを取得することもできます::

mDateDisplay.setText(String.format("%1$tY %1$tb %1$td", date));
于 2012-05-08T16:13:53.977 に答える
2

このコードを試してください

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);
于 2017-12-09T14:26:53.597 に答える
0

これは私のために働く:

public class MainActivity extends AppCompatActivity {
TextView txt, txt1;

Button click;
Calendar c = Calendar.getInstance();


SimpleDateFormat df = new SimpleDateFormat("dd-MMM-yyyy");
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    txt1 = (TextView) findViewById(R.id.txt1);

    click = (Button) findViewById(R.id.click);
    c.setTimeZone(TimeZone.getTimeZone("GMT"));

    click.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            String f=df.format(c.getTime());

            txt1.setText(f);
        }
    });       
}

}
于 2016-10-11T07:24:56.470 に答える
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();
于 2015-01-22T10:02:44.920 に答える