简单日期格式无法正确格式化

时间:2012-03-08 04:13:05

标签: java simpledateformat

我正在编写一个程序,需要能够使用java.util.date格式找到两个日期之间的差异。我正在使用SimpleDateFormat类来解析字符串输入,但它似乎解析错误。这是我的代码。我感谢任何帮助

SimpleDateFormat s = new SimpleDateFormat("yyyy/mm/dd");
Date startDate = s.parse(dateField.getText()); //input is 2012/03/10
System.out.println(START_DATE);//output is Tue Jan 10 00:03:00 MST 2012      

4 个答案:

答案 0 :(得分:5)

您必须使用yyyy/MM/dd代替yyyy/mm/dd。因为mm是分钟而MM是月份

答案 1 :(得分:1)

当您打印Date对象时,您正在打印对象的.toString()表示。

  

将此Date对象转换为以下形式的字符串:

     道琼斯日报   嗯:mm:ss zzz yyyy

如果您想以特定格式打印,则应使用SimpleDateFormat.format()

所以,要回答你的问题,如果你想以与你获得的相同的格式打印它,只需使用

System.out.println(s.format(startDate));

正如@Namal在下面指出的那样,请务必修复SimpleDateFormat以使用正确的格式。 mm表示分钟。 MM代表几个月。

答案 2 :(得分:0)

您的3行代码彼此独立。您创建一个名为s的SimpleDateFormat对象,然后使用javaDate对象来解析该字符串,然后打印对象START_DATE。

答案 3 :(得分:0)

SimpleDateFormat s = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
Date startDate = new Date();
System.out.println(s.format(startDate));

输出

Thu Mar 08 15:23:57 EST 2012