java Month二月在下面的程序中被解析为'33'。如何修复?
在下面的程序中,二月被解析为“33”。在其他月份,它工作正常
// Stores the inputed date which needs to be converted
String date = "2/2/2016";
// Create DateFormat object for the inputed format.
DateFormat df = new SimpleDateFormat("M/d/yyyy");
// Convert the String date to Date object using inputed format
Date d = df.parse(date);
// Create date object for format in which the inputed date needs to be converted
df = new SimpleDateFormat("MMDDYYYY");
// Convert the inputed date
String convertedDate = df.format(d);
System.out.println(convertedDate);
产量为02332016
# 1 楼答案
请找到下面的代码
//存储需要转换的输入日期
输出:
02022016
# 2 楼答案
你应该用“dd”来表示日期。尝试将代码替换为
如果您想查看SimpleDataFormat的文档,这里是link
# 3 楼答案
将大写的
D
替换为小写的d
:下次读documentation
# 4 楼答案
你应该在^{中使用字母
d
(小写)。字母D
(大写)表示一年中的天数。这就是为什么你会得到33分,因为2016年2月2日是一年中的第33天# 5 楼答案
我想知道为什么到目前为止给出的所有答案都忽略了第二个错误(使用基于周的年份Y而不是正确的Y,这可能会在日历年开始时造成麻烦),所以正确的代码必须如下所示:
重要的是要理解模式符号是区分大小写的,并随大小写改变其含义