Java 为什么SimpleDataFormat不应用指定的日期模式?

Java 为什么SimpleDataFormat不应用指定的日期模式?,java,Java,我有以下代码来格式化日期,但输出与模式不匹配 try{ String date = "2014-11-1T12:14:00"; Date convertedDate = new SimpleDateFormat("yyyy-MM-dd").parse(date); System.err.println(convertedDate.toString()); }catch(ParseException p){ S

我有以下代码来格式化日期,但输出与模式不匹配

try{
        String date = "2014-11-1T12:14:00";
        Date convertedDate = new SimpleDateFormat("yyyy-MM-dd").parse(date);
        System.err.println(convertedDate.toString());
        }catch(ParseException p){
            System.err.println(p.getMessage());
        }
输出

Sat Nov 01 00:00:00 EST 2014

我想你是在质疑为什么没有时间,因为你的格式没有包含时间。我建议您在呼叫时使用
“yyyy-MM-dd'T'HH:MM:ss”
匹配您的输入和
“yyy-MM-dd”


对于您在下面的对话中所描述的内容,您可以简单地执行以下操作:

System.err.println((new SimpleDateFormat("yyyy-MM-dd")).format(convertedDate));

因此,您不知道打印的是输出还是异常处理程序……请阅读本文-
Date
没有格式概念,它只是Unix时代以来毫秒数的容器。相反,您需要使用所需的格式将
日期
值格式化为
字符串
。问题是为什么我的格式是yyyy MM dd,而输出不是2014-11-01@Jack编辑。您确实想格式化它。问题是为什么我的格式是yyyy MM dd,但输出不是2014-11-01
System.err.println((new SimpleDateFormat("yyyy-MM-dd")).format(convertedDate));