繁体   English   中英

Java SimpleDateFormat解析奇数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM