Как разобрать дату из Datepicker в формате UTC? - PullRequest
0 голосов
/ 03 декабря 2018

Я хочу, чтобы пользователь выбрал дату, и я хочу установить эту дату в ParseObject (я использую Parse.com).Столбец в ParseObject имеет тип Date и имеет тот же формат, что и SimpleDateFormat ниже.Но от DatePicker я получу только год, месяц и день.Эти атрибуты также имеют неправильный формат.Мне также нужно точное время.

Есть ли способ вернуть Date из Datepicker в точно такой же формат?

alertDialogDateBtn?.setOnClickListener {
            val c = Calendar.getInstance()

            val dpd = DatePickerDialog(this,
                DatePickerDialog.OnDateSetListener { _, year, monthOfYear, dayOfMonth ->
                    val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SS'Z'")
                    chosenDate = simpleDateFormat.parse(year.toString() + "-" + (monthOfYear + 1).toString() + "-" + dayOfMonth.toString())
                }, c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DATE))
                    dpd.show()
        }

Ответы [ 2 ]

0 голосов
/ 03 декабря 2018

Просто передайте дату, полученную из DatePicker, этой функции, и ваш шаблон из даты, выбранной в окне выбора даты, должен выглядеть следующим образом

гггг-мм-дд

public static String changeDateTimeFormat(String inputString) {
    Log.i(">>inputDate", "changeDateFormat: " + inputString);
    String[] date1 = new String[1];
    String inputPattern = "yyyy-MM-dd";
    String outputPattern = "dd-MMM-yyyy h:mm a";
    SimpleDateFormat inputFormat = new SimpleDateFormat(inputPattern);
    SimpleDateFormat outputFormat = new SimpleDateFormat(outputPattern);

    Date date = null;
    String str = null;
    try {
        date = inputFormat.parse(inputString);
        str = outputFormat.format(date);
    } catch (ParseException e) {
        e.printStackTrace();
    }
    return str;

}

и это вернет вам точный формат даты UTC, который вам нужен

0 голосов
/ 03 декабря 2018

У меня была похожая проблема, но у меня это сработало:)

    final DatePickerDialog.OnDateSetListener date = new DatePickerDialog.OnDateSetListener() {
            @Override
            public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {

                myCalendar.set(Calendar.YEAR, year);
                myCalendar.set(Calendar.MONTH, monthOfYear);
                myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
                updateLabel();
            }
        };
        fromDay.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                new DatePickerDialog(ViewActivity.this, date, myCalendar
                        .get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
                        myCalendar.get(Calendar.DAY_OF_MONTH)).show();
            }
});
...