我这样做..
String dateString = "12 Nov 2011 12:00"
DateFormat formatter = new SimpleDateFormat("dd MMM yyyy HH:mm");
Date date = formatter.parse(dateString);
System.out.println(date.getDay());
这打印出来的日子是3?为什么会这样?我怎样才能打印出正确的日子?
答案 0 :(得分:4)
请阅读值得学习的文档。
date.getDay()打印星期几。它应该显示6,因为这是一个星期六,不知道你是如何得到3的结果。
答案 1 :(得分:3)
date.getDay()会将星期几作为零索引数字返回。在这种情况下,它应该是星期六(6)。
您周三(3)的结果表明您使用的是所提供代码的变体,并且可能忘记了月份是零索引的。 e.g。
Date date = new Date(2011, 11, 12, 24, 0, 0); // month is now December, and time ticks over to Wednesday 13th
System.out.println(date.getDay()); // this would produce 3
我相信你想要 date.getDate()。
如果您正在寻找当天的字符串表示,请查看此示例:
http://www.java-examples.com/formatting-day-week-using-simpledateformat
更好的是,查看Joda-Time库,它比Java SDK中提供的类更直观。未来的Java版本甚至可以采用类似于Joda-Time(JSR-310)
的新日期框架答案 2 :(得分:1)
您显示的代码应打印6,因为此日期是星期六。在我的电脑上发生。没有进一步的信息,我无法推断更多。这是您执行的完整代码吗?您可以打印date.toString()的值,这可能会提供更多信息。