如何以字符串格式“ EEE,MMM d,yyyy”获取int月,日和年

时间:2018-11-03 11:49:04

标签: java android

我希望你们能在这方面帮助我。当我使用DatePicker时,我以“ EEE,MMM d,yyyy”格式显示日期。

            Calendar cal = Calendar.getInstance();
            cal.set(Calendar.YEAR, year);
            cal.set(Calendar.MONTH, month);
            cal.set(Calendar.DAY_OF_MONTH, dayOfMonth);
            String strDate = new SimpleDateFormat("EEE, MMM d, yyyy").format(cal.getTime());
            editTextStartDate.setText(strDate);

但是在设置日期之后,我将处理数据,并且我需要将数据格式化为“ dd / mm / yyyy”,以便我可以通过拆分使用它:

    String startDate = editTextStartDate.getText().toString().trim();
    if (!startDate.isEmpty()) {
        String getTo[] = startDate.split("/");
        getToDateYear = Integer.parseInt(getTo[2]);
        getToDateMonth = Integer.parseInt(getTo[1]);
        getToDateDay = Integer.parseInt(getTo[0]);

        toTime.set(Calendar.YEAR, getToDateYear);
        toTime.set(Calendar.MONTH, getToDateMonth-1);
        toTime.set(Calendar.DAY_OF_MONTH, getToDateDay);
    }

我这样做的最佳方法是什么?希望你们能帮助教我。谢谢你们!

1 个答案:

答案 0 :(得分:0)

String strDate = new SimpleDateFormat("EEE, MMM d, yyyy").format(cal.getTime());

中没有任何 /

因此,您的 String getTo [] 将没有任何数组输出。

因此下面的“解决方案”将您的“日期”格式转换为如下的另一种格式:

SimpleDateFormat sourceDateFormat = new SimpleDateFormat("EEE, MMM d, yyyy");
Date sourceDate = null;
try {
    sourceDate = sourceDateFormat.parse(startDate);
} catch (ParseException e) {
    e.printStackTrace();
}

SimpleDateFormat targetFormat = new SimpleDateFormat("dd/MM/yyyy");
String targetdatevalue= targetFormat.format(sourceDate);

因此 targetdatevalue 将是您想要的输出。