格式化日历日期而不将其转换为字符串

时间:2018-10-01 03:17:10

标签: android date

当前,我正在尝试将日期格式设置为特定格式:

这是我的返回日期的方法:

 public Date createDate(int year, int month, int day) {
        Calendar cal = Calendar.getInstance();
        cal.set(Calendar.YEAR, year);
        cal.set(Calendar.MONTH, month);
        cal.set(Calendar.DAY_OF_MONTH, day);
        cal.set(Calendar.HOUR_OF_DAY, 0);
        cal.set(Calendar.MINUTE, 0);
        cal.set(Calendar.SECOND, 0);
        cal.set(Calendar.MILLISECOND, 0);
        return sdf.format(cal. getTime());
    }

我的格式:

  private String myFormat = "MM/dd/yyyy"; //In which you need put here
    private SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.US);

现在的问题是当我尝试使用sdf.format(cal.getTime());

它说这是不兼容的类型,因为当我尝试使用sdf.format时发现了一个字符串。

是否可以将日期格式转换为我想要的格式而无需将其转换为字符串?

2 个答案:

答案 0 :(得分:0)

是的,您可以这样做 例如:

DateFormat dateFormat = new SimpleDateFormat(currFormat);
    Date date = null;
    // date conversion
    try {
        date = dateFormat.parse(dateTimeStr);
    } catch (ParseException e) {
        e.printStackTrace();
    }
    DateFormat outputFormat = new SimpleDateFormat(requiredFormat);
    return outputFormat.format(date);

您必须先将字符串日期转换为日期格式,然后再对其进行格式化。

答案 1 :(得分:0)

    SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd-yyyy"); 
    Date c = Calendar.getInstance().getTime();
    dateFormat.format(c);

您可以使用此代码段获取答案。