我很困惑为什么这不起作用。无论我改变什么,它打印出同样的东西。这是怎么回事?
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/YYYY");
String s = "11/22/2000";
Date d = sdf.parse(s);
System.out.println(d.toString());
输出:Sun Dec 26 00:00:00 CST 1999
答案 0 :(得分:6)
您使用的是YYYY
,这是一周而不是“正常”年份。这通常只用于星期和星期的说明符。
这里的确切行为很难解释 - 可行,但不是非常有用。基本上解决方案是“不要那样做”。您需要格式字符串MM/dd/yyyy
- 请注意yyyy
。
(作为旁注,如果您可以使用Java 8或Joda Time中的java.time.*
,那么您将有更多时间在Java上处理日期/时间问题。它不会影响这个特定问题,但这通常是个好主意......)
答案 1 :(得分:1)
使用
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy")
而不是
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/YYYY");