首页 >Java >java教程 >为什么使用'mm”而不是'MM”时我的 SimpleDateFormat 解析失败?

为什么使用'mm”而不是'MM”时我的 SimpleDateFormat 解析失败?

Patricia Arquette
Patricia Arquette原创
2024-12-14 20:23:11334浏览

Why Does My SimpleDateFormat Parse Fail When Using

使用 SimpleDateFormat 解析日期格式的字符串

使用 SimpleDateFormat 解析日期字符串时,遵守正确的日期和时间模式至关重要。一个常见的陷阱是使用“mm”而不是“MM”。

考虑以下代码:

SimpleDateFormat sf = new SimpleDateFormat("yyyy-mm-dd'T'HH:mm:ss");
String str = "2010-06-13T00:00:00";
Date date = sf.parse(str);
System.out.println(" Date " + date.toString());

这里,我们打算解析字符串“2010-06” -13T00:00:00”为 2010 年 6 月 13 日。但是,输出显示“Wed Jan 13 2010 年东部标准时间 00:00:00”。出现这种情况是因为 SimpleDateFormat 对象中指定的日期格式使用“mm”表示月份。

要解决此问题,我们需要将“mm”替换为“MM”来表示月份。更正后的代码如下:

SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
...

通过此修改,代码可以正确地将输入字符串解析为“Wed Jun 13 00:00:00 EST 2010”。请记住,SimpleDateFormat 模式中的大写“MM”代表月份,而“mm”代表分钟。

以上是为什么使用'mm”而不是'MM”时我的 SimpleDateFormat 解析失败?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn