如何从Datepicker中以UTC格式解析日期?

时间:2018-12-03 09:14:07

标签: android android-datepicker android-date

我希望用户选择一个日期,并希望在ParseObject中设置该日期(我正在使用Parse.com)。 ParseObject中的列是Date类型,其格式与下面的SimpleDateFormat相同。但是从DatePicker中,我将只得到年,月和日。这些属性的格式也错误。我还需要确切的时间。

有什么办法可以以完全相同的格式从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 :(得分:0)

我有一个类似的问题,但这对我有用:)

    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();
            }
});

答案 1 :(得分:0)

只需将您来自DatePicker的日期传递给此函数 并且您从日期选择器选择的日期中选择的模式应为

  

yyyy-mm-dd

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日期格式