繁体   English   中英

从 String 在 DatePickerDialog 中设置日期

[英]Set date in DatePickerDialog from String

如何从字符串中设置 DatePicker 中的日期(例如:02/10/19):

以下是代码:

  iqp_editDate.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            new DatePickerDialog(ActivityClass.this, (DatePickerDialog.OnDateSetListener) date1, y, m, d).show();
        }
    });

 DatePickerDialog.OnDateSetListener date1 = new DatePickerDialog.OnDateSetListener() {
    @Override
    public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {      
        y = year;
        m = month;
        d = dayOfMonth;
        dateMonth = month + 1;
        dateYear = year;
    }
};

更新:误解了问题:

Calendar cal = Calendar.getInstance()
cal.set(Calendar.HOUR_OF_DAY,18);
cal.set(Calendar.MINUTE,0);
cal.set(Calendar.DATE,2);
cal.set(Calendar.MONTH,9); //Month -1

//Or to set it from a String:
String string = "02/10/19";
DateFormat format = new SimpleDateFormat("dd/MM/yy", Locale.getDefault());
Date date = format.parse(string);
cal.setTimeInMillis(date.getTime());

new DatePickerDialog(getContext(),date1, cal 
                                    .get(Calendar.YEAR), cal .get(Calendar.MONTH),
                                    cal .get(Calendar.DAY_OF_MONTH)).show();

字符串是一个字符数组。 这意味着您可以创建一个循环并将不同的日、月和年值设置为字符串的不同部分。

String date = "02/19/19";
String year = "";
for(int i = 0; i < date.length; i++)
{
  month += date.charAt(i);
  ...
}

然后当它遇到'/'时,你会告诉它何时从添加到月切换到年

if(date.charAt(i) == '/')
{
  ...
}

最后,如果你需要把它变成一个 int 然后做

int month = Integer.parseInt("month");

抱歉,我必须要去某个地方,所以我不能只为你写代码,但我相信你可以从我给你的内容中弄清楚。

以下代码对我来说很好:

new DatePickerDialog(Activityclass.this, date1, cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH)).show();

DatePickerDialog.OnDateSetListener date1 = new DatePickerDialog.OnDateSetListener() {
    @Override
    public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
        view.setMinDate(1559327400);
        y = year;
        m = month;
        d = dayOfMonth;
        dateMonth = month + 1;
        dateYear = year;
        iqp_editDate.setText(dayOfMonth + "/" + (month + 1) + "/" + year);
        try {
            epoch = new java.text.SimpleDateFormat("MM/dd/yyyy").parse(m + "/" + dayOfMonth + "/" + year).getTime() / 1000;
        } catch (ParseException e) {
            e.printStackTrace();
        }

    }
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM