关于java:从日期中删除时间。

Removing time from date. and keeping the DATE type

本问题已经有最佳答案,请猛点这里访问。

我有一个日期对象,它返回calendar.getTime()日期。

但是,此日期的格式如下:

1
("dd/MM/time/yyyy")
  • 我想摆脱那个时间,继续把这个日期当作约会。因为我需要运行其余应用程序的日期类型正确地。我想把它显示为

    (年/月/日)

  • 我该怎么做?我看到的其他答案都要求你将其更改为字符串。是否可以将其作为字符串和然后回到一个没有时间的约会?


  • 日期对象总是有时间部分。所以没有时间部分你就不能有约会。只能将时间部分设置为零:

    1
    2
    3
    4
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.set(Calendar.MILLISECOND, 0);

    如果您只想将其转换为String,则可以使用simpledateformat:

    1
    2
        DateFormat df = new SimpleDateFormat("dd/MM/yyy");
        String s = df.format(calendar.getTime());


    您可以使用DateFormat类执行此操作,如下所示:

    1
    2
    3
    Calendar cal = new GregorianCalendar(2015, 01, 30);
    DateFormat df = android.text.format.DateFormat.getDateFormat(this);
    String date = df.format(calendar.getTime());
    1
    getDateFormat(Context)

    此返回由系统区域设置定义的格式化程序。(如果您希望支持多日期格式(如US、DE),那就太好了)