getdate van datepicker-android

Ik wil date krijgen van datepicker widget in Android die ik hiermee geprobeerd heb

Date date1= (Date) new Date
   (dpBirthDate.getYear(), dpBirthDate.getMonth(), dpBirthDate.getDayOfMonth());
date1  = (Date) new SimpleDateFormat("yyyy-MM-dd").parse(date1.toString());

Maar ik krijg een datum als deze mon 7 dec 2011 time ... en ik wil alleen het formaat yyyy-MM-dd hebben om het in de database op te slaan.

Ik probeerde ook om de jaar-maand-dag zo te concateren, maar het probleem is bijvoorbeeld vandaag 2011-12-7 de dag moet 07 zijn om geldig te zijn

Kan u me alstublieft helpen.

30
Wow, srsly DatePicker heeft geen methode getDate ??? Android/Google cmon.
toegevoegd de auteur Marian Paździoch, de bron

3 antwoord

Ik gebruik dit:

    /**
 * 
 * @param datePicker
 * @return a java.util.Date
 */
public static java.util.Date getDateFromDatePicker(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();
}
59
toegevoegd
Dit werkte grotendeels voor mij, behalve dat ik de DatePicker als een android.widget.DatePicker moest definiëren. Bedankt :)
toegevoegd de auteur Chris, de bron

U moet SimpleDateFormat.format om dat Date -object te converteren naar een String , zoals deze

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String dateString = sdf.format(date1);

Ik denk dat je het gewoon achteruit hebt gedaan. U moet de -indeling gebruiken om van Datum naar tekenreeks te gaan en parseren om van een reeks naar een datum te gaan.

13
toegevoegd
Bekijk dan wat het jaar van het object Date is voordat je het doorgeeft
toegevoegd de auteur Craigy, de bron
Dan maakt u het Date-object verkeerd aan. Zoals ik al zei, zou je moeten debuggen wat de waarde eigenlijk is. Als u de documentatie van Datum u ziet dat het jaar waarin u passeert" het jaar min 1900 "moet zijn, dus dat is waarschijnlijk uw fout. Het Date -object van Java moet voorzichtig worden behandeld.
toegevoegd de auteur Craigy, de bron
veranderde de code als deze Datum datum1 = (Datum) nieuwe Datum (dpBirthDate.getYear (), dpBirthDate.getMonth (), dpBirthDate.getDayOfMonth ()); datums = nieuw SimpleDateFormat ("yyyy-MM-dd"). formaat (datum1); en wat ik heb 3911-12-07 Wat is er mis?
toegevoegd de auteur Aymen Taarit, de bron
hoe kan ik het datumformaat oplossen, help! Ik krijg altijd de datumstrats met 3911
toegevoegd de auteur Aymen Taarit, de bron
dank u nu, het is duidelijk dat ik 3911 -1900 moet doen om het juiste jaar 2011 te krijgen
toegevoegd de auteur Aymen Taarit, de bron

Ik weet dat dit oud is, maar ik heb moeite om het te vinden. Dus voor het nageslacht

Scenario: A View heeft de datum nodig in jjjj-mm-dd

    date_field = (EditText)findViewById(R.id.input_date);
        date_field.setFocusable(false);//disable editing of this field
        date_field.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(final View v) {
                chooseDate();
            }
        });

 private void chooseDate() {
        final Calendar calendar = Calendar.getInstance();
        int year = calendar.get(Calendar.YEAR);
        int month = calendar.get(Calendar.MONTH);
        final int day = calendar.get(Calendar.DAY_OF_MONTH);
        DatePickerDialog datePicker =
            new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
                @Override
                public void onDateSet(final DatePicker view, final int year, final int month,
                                      final int dayOfMonth) {

                    @SuppressLint("SimpleDateFormat")
                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                    calendar.set(year, month, dayOfMonth);
                    String dateString = sdf.format(calendar.getTime());

                    date_field.setText(dateString);//set the date
                }
            }, year, month, day);//set date picker to current date

        datePicker.show();

        datePicker.setOnCancelListener(new DialogInterface.OnCancelListener() {
            @Override
            public void onCancel(final DialogInterface dialog) {
                dialog.dismiss();
            }
        });
    }

Ik hoop dat dit iemand helpt

0
toegevoegd