Java SimpleDataFormat未按指定格式设置日期
我正在尝试以该格式获取当前日期。“yyyy/MM/dd”。我已经编写了以下代码来实现这一点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
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的时候回来了我谢谢,我明白了:)