[英]Java SimpleDateFormat parsing oddity
我很困惑为什么这不起作用。 无论我将日期更改为什么,它都会打印出相同的内容。 这里发生了什么?
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
您使用的是YYYY
,它是星期年份,而不是“正常”年份。 通常只与星期几和一年中的指定符一起使用。
这里的确切行为将很难解释-可行,但不是很有帮助。 基本上,解决方案是“不要那样做”。 你想要的格式字符串MM/dd/yyyy
,而不是-注意的情况下, yyyy
。
(作为附带说明,如果您可以使用Java 8或Joda Time中的java.time.*
,则在Java中有日期/时间问题的时间会好很多。这不会影响此特定问题,但是通常是个好主意...)
采用
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy")
代替
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/YYYY");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.