How to get datepicker value in date format?

后端 未结 5 1033
礼貌的吻别
礼貌的吻别 2021-02-08 05:55

I have a problem with my Datapicker

i use the code for getting date,month & year shown below

           DatePicker datePicker;
           datePicker         


        
相关标签:
5条回答
  • 2021-02-08 06:04
    <?xml version="1.0" encoding="utf-8"?>
    

    <Button
        android:id="@+id/btnChangeDate"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Change Date" />
    
    <TextView
        android:id="@+id/lblDate"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Current Date (M-D-YYYY): "
        android:textAppearance="?android:attr/textAppearanceLarge" />
    
    <TextView
        android:id="@+id/tvDate"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=""
        android:textAppearance="?android:attr/textAppearanceLarge" />
    
    <DatePicker
        android:id="@+id/dpResult"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    

    package com.mkyong.android;
    
       import java.util.Calendar;
     import android.app.Activity;
     import android.app.DatePickerDialog;
     import android.app.Dialog;
     import android.os.Bundle;
     import android.view.View;
     import android.view.View.OnClickListener;
     import android.widget.Button;
     import android.widget.DatePicker;
     impot android.widget.TextView;
    
     public class MyAndroidAppActivity extends Activity {
    
    private TextView tvDisplayDate;
    private DatePicker dpResult;
    private Button btnChangeDate;
    
    private int year;
    private int month;
    private int day;
    
    static final int DATE_DIALOG_ID = 999;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    
        setCurrentDateOnView();
        addListenerOnButton();
    
    }
    
    // display current date
    public void setCurrentDateOnView() {
    
        tvDisplayDate = (TextView) findViewById(R.id.tvDate);
        dpResult = (DatePicker) findViewById(R.id.dpResult);
    
        final Calendar c = Calendar.getInstance();
        year = c.get(Calendar.YEAR);
        month = c.get(Calendar.MONTH);
        day = c.get(Calendar.DAY_OF_MONTH);
    
        // set current date into textview
        tvDisplayDate.setText(new StringBuilder()
            // Month is 0 based, just add 1
            .append(month + 1).append("-").append(day).append("-")
            .append(year).append(" "));
    
        // set current date into datepicker
        dpResult.init(year, month, day, null);
    
    }
    
    public void addListenerOnButton() {
    
        btnChangeDate = (Button) findViewById(R.id.btnChangeDate);
    
        btnChangeDate.setOnClickListener(new OnClickListener() {
    
            @Override
            public void onClick(View v) {
    
                showDialog(DATE_DIALOG_ID);
    
            }
    
        });
    
    }
    
    @Override
    protected Dialog onCreateDialog(int id) {
        switch (id) {
        case DATE_DIALOG_ID:
           // set date picker as current date
           return new DatePickerDialog(this, datePickerListener, 
                         year, month,day);
        }
        return null;
    }
    
    private DatePickerDialog.OnDateSetListener datePickerListener 
                = new DatePickerDialog.OnDateSetListener() {
    
        // when dialog box is closed, below method will be called.
        public void onDateSet(DatePicker view, int selectedYear,
                int selectedMonth, int selectedDay) {
            year = selectedYear;
            month = selectedMonth;
            day = selectedDay;
    
            // set selected date into textview
            tvDisplayDate.setText(new StringBuilder().append(month + 1)
               .append("-").append(day).append("-").append(year)
               .append(" "));
    
            // set selected date into datepicker also
            dpResult.init(year, month, day, null);
    
        }
    };
    

    }

    0 讨论(0)
  • 2021-02-08 06:07

    You can use a custom method for setting date and month in the desired format

        private static String  pad(int c)
        {
            return c>=10 ? ""+c : "0"+c;      
        }
    

    Instead of using the values for date and month use pad(date) and pad(month)

    Hope this helps.

    0 讨论(0)
  • 2021-02-08 06:09
     public String checkDigit(int number)
        {
            return number<=9?"0"+number:String.valueOf(number);
        }
    

    basic use:

    month=checkDigit(month);
    input 7
    output 07
       String date=checkDigit(monthOfYear+1)+"/"+checkDigit(dayOfMonth)+"/"+year;
    
    0 讨论(0)
  • 2021-02-08 06:23

    Starting from API level 12, DatePicker has public CalendarView getCalendarView (), using this view you can get the date:

    long dateTime = datePicker.getCalendarView().getDate();
    Date date = new Date(dateTime);
    

    Then format if needed:

    DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
    String formattedDate = dateFormat.format(date);
    
    0 讨论(0)
  • 2021-02-08 06:24

    You can format the date like this :

    int   day  = datePicker.getDayOfMonth();
    int   month= datePicker.getMonth();
    int   year = datePicker.getYear();
    Calendar calendar = Calendar.getInstance();
    calendar.set(year, month, day);
    
    SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
    String formatedDate = sdf.format(calendar.getTime());
    

    You can parse the String back to Date object by calling

    Date date = sdf.parse(formatedDate);
    
    0 讨论(0)
提交回复
热议问题