从Date对象中删除时间?


问题内容

我想从Date对象中删除时间。

DateFormat df;
String date;
df = new SimpleDateFormat("dd/MM/yyyy");
d = eventList.get(0).getStartDate(); // I'm getting the date using this method
date = df.format(d); // Converting date in "dd/MM/yyyy" format

但是,当我转换此日期(String格式)时,它也在附加时间。

我根本不想要时间。我想要的只是“ 21/03/2012”。


问题答案:

快速答案是:

不,您不能这样做。 因为那是Date用来干什么的。

来自的javadoc Date

Date类表示特定的时间瞬间,精度为毫秒。

但是 ,由于此类仅是数据对象。它不在乎我们如何描述它。当我们看到日期时2012/01/01 12:05:10.321,可以说是2012/01/01,这就是您所需要的。有很多方法可以做到这一点。

示例1:通过操纵字符串

输入字符串:2012/01/20 12:05:10.321

所需的输出字符串:2012/01/20

由于yyyy / MM / dd正是我们所需要的,因此我们可以简单地操作字符串以获取结果。

String input = "2012/01/20 12:05:10.321";
String output = input.substring(0, 10);  // Output : 2012/01/20

例子2:通过SimpleDateFormat

输入字符串:2012/01/20 12:05:10.321

所需的输出字符串:2012年1月20日

在这种情况下,我们需要其他格式。

String input = "2012/01/20 12:05:10.321";
DateFormat inputFormatter = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss.SSS");
Date date = inputFormatter.parse(input);

DateFormat outputFormatter = new SimpleDateFormat("MM/dd/yyyy");
String output = outputFormatter.format(date); // Output : 01/20/2012

有关其用法SimpleDateFormat,请检查SimpleDateFormat
JavaDoc