SimpleDateFormat 解析 DTG 格式
我真的对 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。
I am really confused with the SimpleDateFormat object. Here is the code :
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 + "\"");
}
and this is the output :
Original string: 312230 MAR 10
Parsed date : Sun Jan 31 22:30:00 EST 2010
I really expected the output to be
Parsed date : Wed Mar 31 22:30:00 EST 2010
Can someone please point out what I am doing wrong? It would be deeply appreciated. I am using java 1.6_27.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
将 simpleDateFormat 模式更改为“ddHHmm MMM yy”,返回
大写表示一年中某一天的预期输出 DD。在您的示例中,第 31 天是 1 月,您的输出如何,而不是 3 月
Change the simpleDateFormat pattern by "ddHHmm MMM yy" return the expected output
DD on uppercase means day of year. In your example day 31 is in January, how your output, and not in March
在 SimpleDateFormat 中:
D 代表一年中的第几天。例如 - DD 的值 31 将为您提供从 1 月 1 日开始的第 31 天。因此,从 1 月 1 日开始的一年中的第 31 天将是 1 月 31 日.
d 代表月份中的第几天。例如,如果 dd 的值指定为 31,并且 MMM 为 MAR,则将为 5 月 31 日。
更多信息请参见 SimpledateFormat。
In SimpleDateFormat :
D represent the Day in year.For example- 31 as value of DD will give you the 31st day from 1st Jan.So,31st day of a year starting with 1st Jan will be 31st Jan.
d represent the Day in month.For ex- if 31 is given as value of dd,and MMM is MAR,then it will be 31st May.
More in SimpledateFormat.