SimpleDateFormat 解析 DTG 格式

发布于 2024-12-08 15:39:21 字数 758 浏览 3 评论 0原文

我真的对 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

感性不性感 2024-12-15 15:39:21

将 simpleDateFormat 模式更改为“ddHHmm MMM yy”,返回

Original string: 312230 MAR 10
Parsed date    : Wed Mar 31 22:30:00 CEST 2010

大写表示一年中某一天的预期输出 DD。在您的示例中,第 31 天是 1 月,您的输出如何,而不是 3 月

Change the simpleDateFormat pattern by "ddHHmm MMM yy" return the expected output

Original string: 312230 MAR 10
Parsed date    : Wed Mar 31 22:30:00 CEST 2010

DD on uppercase means day of year. In your example day 31 is in January, how your output, and not in March

汹涌人海 2024-12-15 15:39:21

在 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文