【问题标题】:Android save and retrieve date on Parse.com using Android date pickerAndroid 使用 Android 日期选择器在 Parse.com 上保存和检索日期
【发布时间】:2015-04-11 23:56:20
【问题描述】:

编辑:我现在使用以下代码获取日期,并且我想将所选日期放入 Parse date 列(String date 变量):

private void setDateTimeField() {
    deadlineDateEditText.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(final View v) {
            datePickerDialog.show();
        }
    });

    Calendar newCalendar = Calendar.getInstance();
    datePickerDialog = new DatePickerDialog(getActivity(), new DatePickerDialog.OnDateSetListener() {

        public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
            Calendar newDate = Calendar.getInstance();
            newDate.set(year, monthOfYear, dayOfMonth);
            deadlineDateEditText.setText(dateFormatter.format(newDate.getTime()));
            //get string version of date
            date = dateFormatter.format(newDate.getTime());
        }

    },newCalendar.get(Calendar.YEAR), newCalendar.get(Calendar.MONTH), newCalendar.get(Calendar.DAY_OF_MONTH));
}

我的问题是如何在没有时间的情况下将其添加到 Parse 中的 Date 列?我还没有遇到任何适用于 Android 的示例。我还担心 Parse 需要日期类型的格式。

当我尝试使用以下代码输入日期时,我得到parse android expected date but got String。代码:

public void addModuleDeadline()
{
    ParseQuery<ParseObject> query = ParseQuery.getQuery("Module");
    query.whereEqualTo("moduleCode", moduleDeadlineSpinnerText);
    query.getFirstInBackground(new GetCallback<ParseObject>() {
        public void done(ParseObject object, ParseException e) {
            if (e == null)
            {
                ParseObject deadlineObject = new ParseObject("ModuleDeadlines");
                deadlineObject.put("moduleCode", moduleDeadlineSpinnerText);
                deadlineObject.put("createdBy", currentUser);
                deadlineObject.put("deadlineTitle", deadlineTitleText);
                deadlineObject.put("deadline", date);
                deadlineObject.saveInBackground(new SaveCallback() {
                    @Override
                    public void done(ParseException e) {
                        if (e != null) {
                            Toast.makeText(getActivity(), "Error adding deadline: " + e.getMessage(), Toast.LENGTH_LONG).show();
                        } else {
                            Toast.makeText(getActivity(), "Deadline added to '" + moduleDeadlineSpinnerText + "'", Toast.LENGTH_LONG).show();
                        }
                    }
                });
            }
            else
            {
                Toast.makeText(getActivity(), "There was an issue adding the deadline", Toast.LENGTH_LONG).show();
            }
        }
    });
}

据我了解,您可以使用 object.getDate("column name") 从 Parse 获取日期。

任何帮助都会很棒!

【问题讨论】:

    标签: android android-studio parse-platform datepicker android-datepicker


    【解决方案1】:

    只需将deadlineObject.put("deadline", date); 更改为deadlineObject.put("deadline", newDate.getTime()); 即可解决此问题,deadlineObject.put("deadline", newDate.getTime()); 传递的是日期对象而不是字符串。

    希望这对其他人有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-14
      • 2012-04-15
      相关资源
      最近更新 更多