有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java DateFormat不工作?

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时,它会显示如下内容: 2012年3月8日星期四00:00:00中央标准时间

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


共 (4) 个答案

  1. # 1 楼答案

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

    System.out.println(dateFormat.format(createdDate));
    
  2. # 2 楼答案

    使用dateFormat.format(createdDate)

  3. # 3 楼答案

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

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

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

    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的格式

  4. # 4 楼答案

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