2
String selectedDate = "2012-" + createdMonth + "-" + createdDay;

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");

try {
    createdDate = dateFormat.parse(selectedDate);
} catch (ParseException e1) {
    e1.printStackTrace();
}

System.out.println(createdDate);

基本上当我打印 createdDate 时,它​​会显示如下内容:Thu Mar 08 00:00:00 CST 2012

而不是这种格式的“yyyy-MM-dd”。非常感谢!

4

4 回答 4

2

parse方法返回一个java.util.Date,这就是返回的Date实现toString()

于 2013-01-22T14:20:34.743 回答
1

您似乎认为createdDate作为Date对象的 具有格式yyyy-MM-dd。它没有。Date对象没有格式——它们只包含一个时间戳,就像数字只是数字一样,它们本身没有格式。

SimpleDateFormat对象用于将 a 解析为String对象Date,或将对象格式化DateString.

如果您有一个Date对象,并且希望以特定格式显示日期,则String使用对象将其转换为具有适当格式的 a SimpleDateFormat

SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
String text = fmt.format(createdDate);
System.out.println("Created: " + text);

如果您在Date没有明确格式化的情况下打印对象,它将使用默认格式进行格式化,这就是您看到Thu Mar 08 00:00:00 CST 2012.

一个Date对象不记得String你解析它的格式是什么。

于 2013-01-22T14:25:14.643 回答
1

您需要打印如下。关键是您还需要使用在打印时创建的格式化程序对象。

System.out.println(dateFormat.format(createdDate));
于 2013-01-22T14:19:13.957 回答
1

利用dateFormat.format(createdDate)

于 2013-01-22T14:20:28.077 回答