我对SimpleDateFormat对象感到困惑。这是代码:
SimpleDateFormat formatter = new SimpleDateFormat("DDHHmm MMM yy", Locale.ENGLISH);
String dateString = "312230 MAR 10";
try
{
Date date = (Date)formatter.parse(dateString);
System.out.println("Original string: " + dateString);
System.out.println("Parsed date : " + date.toString());
}
catch (ParseException e)
{
System.out.println("ERROR: could not parse date in string \"" +
dateString + "\"");
}
这是输出:
Original string: 312230 MAR 10
Parsed date : Sun Jan 31 22:30:00 EST 2010
我真的希望输出为
Parsed date : Wed Mar 31 22:30:00 EST 2010
有人可以指出我做错了什么吗?我们将深表感谢。我使用的是java 1.6_27。
答案 0 :(得分:2)
将simpleDateFormat模式更改为“ddHHmm MMM yy”返回预期输出
Original string: 312230 MAR 10
Parsed date : Wed Mar 31 22:30:00 CEST 2010
大写的DD表示一年中的某一天。在你的例子中,31日是1月,你的输出如何,而不是3月
答案 1 :(得分:0)
在SimpleDateFormat中:
D 代表一年中的一天。例如-31作为DD的价值将给你从1月1日起的第31天。从1月1日开始的一年中的第31天将是1月31日
d 表示以月为单位的日期。例如,如果给出31作为dd的值,并且MMM是MAR,那么它将是5月31日。