Java SimpleDataFormat未按指定格式设置日期

Java SimpleDataFormat未按指定格式设置日期,java,date,Java,Date,我正在尝试以该格式获取当前日期。“yyyy/MM/dd”。我已经编写了以下代码来实现这一点 DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd", Locale.US); Calendar cal = Calendar.getInstance(); String dateStr = dateFormat.format(cal.getTime()); currentDate= date

我正在尝试以该格式获取当前日期。“yyyy/MM/dd”。我已经编写了以下代码来实现这一点

    DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd", Locale.US);
    Calendar cal = Calendar.getInstance();

        String dateStr = dateFormat.format(cal.getTime());
        currentDate=  dateFormat.parse(dateStr);
处理后当前日期的值为

2016年6月20日星期一00:00:00 GMT+05:00

格式化后的
dateStr
值为
2016/06/20


请告诉我我做错了什么。

你把它的工作原理弄糊涂了

DateFormat.format
获取日期并将其转换为字符串。就是这个字符串(
dateStr
在代码中)以您想要的格式保存日期


DateFormat.parse
获取一个
String
并将其转换为
Date
Date
对象是一个日期(更准确地说是一毫秒),它没有格式。如果打印生成的
Date
对象,将使用其
toString()
实现来打印它,该实现显示
Mon Jun..
字符串。但是该值与生成日期实例的日期格式没有任何关系。

-
替换
/
,并且交换
dd
MM
MM
表示月份,而
20
在我所知道的任何日历中都不是有效的月份。如果你真的想这么做的话,将年-日-月格式化是非常奇怪的。谢谢你的评论,但它仍然会返回我
Mon-Jun 20 00:00:00 GMT+05:00 2016,
那是一个打字错误,我编辑了它,我需要
yyyy/MM/dd
格式的输出,但是它在6月20日星期一00:00:00 GMT+2016年5:00的时候回来了我谢谢,我明白了:)