27

DatePickerアプリにとがありTimePickerます。選択した日時の値を取得する方法を教えてもらえますか?私が言いたいのは、EditText私たちは次のように宣言することができるからです

final EditText name = (EditText) this.findViewById(R.id.nametext);

を使用してそのデータをキャストできますname.getText().toString()

同様に、DatePickerとTimePickerの値を文字列に取得するにはどうすればよいですか?

4

9 に答える 9

54

DatePickerには

getYear() 
getMonth() 
getDayOfMonth()

DatePickerからDateオブジェクトを作成するにはnew Date(datePicker.getYear() - 1900, datePicker.getMonth(), datePicker.getDayOfMonth());

このコンストラクターはAPIレベル1で非推奨になっていることに注意してください。Dateオブジェクトを作成するより適切な方法については、andrescanavesiの回答を参照してください。

TimePickerには

getCurrentHour()
getCurrentMinute()
于 2010-04-07T12:59:27.863 に答える
28

私はこれを使用します:

    /**
 * 
 * @param datePicker
 * @return a java.util.Date
 */
public static java.util.Date getDateFromDatePicket(DatePicker datePicker){
    int day = datePicker.getDayOfMonth();
    int month = datePicker.getMonth();
    int year =  datePicker.getYear();

    Calendar calendar = Calendar.getInstance();
    calendar.set(year, month, day);

    return calendar.getTime();
}
于 2013-01-29T18:56:45.947 に答える
5
date=(EditText)findViewById(R.id.date_of_birth_textfield);

date.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                 showDialog(DATE_DIALOG_ID);

            }
        });


        mYear = c.get(Calendar.YEAR);
        mMonth = c.get(Calendar.MONTH);
        mDay = c.get(Calendar.DAY_OF_MONTH);

updateDisplay();

protected Dialog onCreateDialog(int id) {
        switch(id)
        {
        case DATE_DIALOG_ID:
            return new DatePickerDialog(this,
                    mDateSetListener,
                    mYear, mMonth, mDay);
}
return null
}

private DatePickerDialog.OnDateSetListener mDateSetListener= new DatePickerDialog.OnDateSetListener() {

        @Override
        public void onDateSet(DatePicker view, int year, int monthOfYear,
                int dayOfMonth) {
            // TODO Auto-generated method stub
            System.out.println("calendar view shown.."+view.getCalendarViewShown());
        c.set(Calendar.YEAR, year);
              c.set(Calendar.MONTH, monthOfYear);
              c.set(Calendar.DAY_OF_MONTH, dayOfMonth);
              mYear = c.get(Calendar.YEAR);
                mMonth = c.get(Calendar.MONTH);
                mDay = c.get(Calendar.DAY_OF_MONTH);
                updateDisplay();
           // mMonth = monthOfYear;
           // mDay = dayOfMonth;

        }
    };

private void updateDisplay() {
        date.setText(
                new StringBuilder()
                // Month is 0 `based` so add 1


                .append(mYear).append("-").append(mMonth + 1).append("-").append(mDay).append(""));
        //date.setText(fmtDateAndTime.format(c.getTime()));

}
于 2012-06-26T06:08:11.373 に答える
4

AndroidのDateFormatクラスを確認することをお勧めします。Androidドキュメントに記載されているDateFormatをインポートするように注意してください。その後、達成したいフォーマットは本当に簡単です。基本的な2012年8月12日については、これを行うことができます。

DatePicker myDatePicker = (DatePicker) findViewById(R.id.mydatepicker);
String selectedDate = DateFormat.getDateInstance().format(myDatePicker.getCalendarView().getDate());

他のさまざまな構成を取得するには、 DateFormatクラスを確認してください。

于 2012-10-12T07:01:07.733 に答える
3

すべての答えを組み合わせて、それからコードスニペットを作成しました。

クラスの上部にdatePickerをインポートします。

import android.widget.DatePicker;

クラス内で次の変数を宣言します。

private DatePicker dobPicker;

そして、ボタンクリックイベントで実行されるコードは次のとおりです。

 dobPicker = (DatePicker)findViewById(R.id.dobPicker);
        Integer dobYear = dobPicker.getYear();
        Integer dobMonth = dobPicker.getMonth();
        Integer dobDate = dobPicker.getDayOfMonth();
        StringBuilder sb=new StringBuilder();
        sb.append(dobYear.toString()).append("-").append(dobMonth.toString()).append("-").append(dobDate.toString()).append(" 00:00:00");
        String dobStr=sb.toString();

R.id.dobPickerの場合、dobPickerはレイアウトxmlファイルのdatePickerです。これにより、最後に文字列が表示され、サーバーに保存または送信できます。

于 2012-08-22T08:40:29.067 に答える
2

getDateTimeFromPickers()

DatePickerとTimePickerから日付と時刻を取得するための簡単な方法

警告:JodaTimeDateTimeリターンとして使用します。好きなように変更できます。

 // Gets the Date and Time from a DatePicker and TimePicker and return a JodaTime DateTime from them, in current timezone.
 //
 private DateTime getDateTimeFromPickers( int DatePickerId, int TimePickerId ) {
     DatePicker dp = (DatePicker) findViewById(DatePickerId);
     TimePicker tp = (TimePicker) findViewById(TimePickerId);

     String year    = Integer.toString(dp.getYear()) ;
     String month   = StringUtils.leftPad( Integer.toString(dp.getMonth() + 1), 2, "0" );
     String day     = StringUtils.leftPad( Integer.toString(dp.getDayOfMonth()), 2, "0" );
     String hour    = StringUtils.leftPad( Integer.toString(tp.getCurrentHour()), 2, "0" );
     String minutes = StringUtils.leftPad( Integer.toString(tp.getCurrentMinute()), 2, "0" );

     String dateTime = year + "-" + month + "-" + day + "T" + hour + ":" + minutes + ":00.000";

     return DateTime.parse(dateTime);
 }

お役に立てば幸いです。

JP

于 2014-01-29T02:20:30.830 に答える
2

私はそれを次のように行います:

    Calendar calendar = Calendar.getInstance();
    calendar.set(dp.getYear(), dp.getMonth(), dp.getDayOfMonth(), Tp.getCurrentHour(), Tp.getCurrentMinute());
    DateFormat gmtFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    TimeZone gmtTime = TimeZone.getTimeZone("GMT");
    gmtFormat.setTimeZone(gmtTime);
    String mydate = ""+ gmtFormat.format(calendar.getTime());

ps dpとtpは、Androidの日付ピッカーと時間ピッカーです。

于 2015-10-20T14:29:52.860 に答える
0
StringBuilder sb=new StringBuilder();
        sb.append(myYear).append("-").append(myMonth).append("-").append(myDay);
    String str=sb.toString();
    edittext.setText(str);
于 2012-04-25T05:15:11.297 に答える
0

Format Ex:2014年12月24日で以下を試してください。

            DatePicker datePicker = (DatePicker) findViewById(R.id.datepicker_inspection);
            SimpleDateFormat df = new SimpleDateFormat("dd MMMM yyyy");
            String inspectiondate = df.format(new Date(datePicker.getYear() - 1900, datePicker.getMonth(), datePicker.getDayOfMonth()));
于 2013-12-15T06:36:35.983 に答える