DateFormat不起作用?

时间:2013-01-22 14:11:21

标签: java date format

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 个答案:

答案 0 :(得分:2)

parse方法返回java.util.Date,这就是Date toString()实现返回的内容。

答案 1 :(得分:1)

您需要打印如下。重点是你需要使用你在打印时创建的格式化程序对象。

System.out.println(dateFormat.format(createdDate));

答案 2 :(得分:1)

使用dateFormat.format(createdDate)

答案 3 :(得分:1)

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

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

如果您有一个Date对象,并且希望以特定格式显示日期,请使用String对象将其转换为具有相应格式的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格式。

相关问题