我正在编写一个程序,需要能够使用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
答案 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