SimpleDateFormat不是按指定格式化日期

时间:2016-06-19 21:03:00

标签: 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=  dateFormat.parse(dateStr);

处理后的当前日期的值是

Mon Jun 20 00:00:00 GMT+05:00 2016

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

请指导我在这里做错了什么。

1 个答案:

答案 0 :(得分:5)

你的工作原理令人困惑。

DateFormat.format获取Date并将其转换为String。这个字符串(代码中为dateStr)以您希望的格式保存日期。

DateFormat.parse需要String并将其转换为DateDate对象是一个日期(更精确地是一毫秒),它没有格式。如果您打印生成的Date对象,则会使用其toString()实现打印,该实现会显示Mon Jun...字符串。但该值与您生成DateFormat实例的Date无关。