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

时间:2014-10-13 01:44:58

标签: 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){
            System.err.println(p.getMessage());
        }

输出

Sat Nov 01 00:00:00 EST 2014

2 个答案:

答案 0 :(得分:1)

我认为你质疑为什么你没有时间,因为你的格式没有包含它。我建议您使用"yyyy-MM-dd'T'HH:mm:ss"来匹配您的输入,并在致电DateFormat#format(Date)时使用"yyyy-MM-dd"

try {
  String date = "2014-11-1T12:14:00";
  Date convertedDate = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss").parse(date);
  System.out.println(convertedDate.toString());
  // Per your comment you wanted to `format()` it like -
  System.out.println(new SimpleDateFormat("yyyy-MM-dd").format(convertedDate));
} catch (ParseException p) {
  System.err.println(p.getMessage());
}

答案 1 :(得分:1)

对于您在我们的对话中描述的内容,您可以简单地执行此操作:

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