在android中从日期选择器和时间选择器中转换和获取值

Rah*_*rma 27 android android-datepicker android-timepicker

我的应用程序中有一个DatePicker和一个TimePicker.任何人都可以告诉我如何获取所选日期和时间的值??? 我的意思是说,因为EditText我们可以宣称为

final EditText name = (EditText) this.findViewById(R.id.nametext);
Run Code Online (Sandbox Code Playgroud)

我们可以使用它来投射它的数据name.getText().toString().

所以类似地我们如何才能将DatePicker和TimePicker的值赋予String?

Jim*_*ler 54

DatePicker有

getYear() 
getMonth() 
getDayOfMonth()
Run Code Online (Sandbox Code Playgroud)

从DatePicker创建一个Date对象 new Date(datePicker.getYear() - 1900, datePicker.getMonth(), datePicker.getDayOfMonth());

请注意,在API级别1中不推荐使用此构造函数 - 请参阅andrescanavesi的答案,以获得更合适的创建Date对象的方法.

TimePicker有

getCurrentHour()
getCurrentMinute()
Run Code Online (Sandbox Code Playgroud)


And*_*esi 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();
}
Run Code Online (Sandbox Code Playgroud)

  • 不错的方法.但是你可以添加"TimePicker"相关代码吗?问题是关于`DatePicker` +`TimePicker`. (2认同)

小智 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()));

}
Run Code Online (Sandbox Code Playgroud)