使用冒号(":")Java String拆分无法按预期工作

1 java split colon

我试图删除此字符串的秒数:

10/31/2009 9:46:16 AM
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用以下函数来执行此操作:

public static String correctValue4(String str) {
    String parts[] = str.split(":");
    String fixedStr = parts[0] + ":" + parts[1];
    return fixedStr;
}
Run Code Online (Sandbox Code Playgroud)

我想它会解析它并获得10/31/2009 9然后在最后添加46.但是,我在运行时收到"java.lang.ArrayIndexOutOfBoundsException:1"错误.显然,它没有拿起零件[1].

有任何想法吗?

额外的业力:我需要将AM/PM追加到字符串的末尾.所以,最后它应该是这样的:

10/31/2009 9:46 AM
Run Code Online (Sandbox Code Playgroud)

谢谢,非常感谢您的帮助=)

编辑:

对不起,我应该更具体地说明日期.我正在做的是接受一个制表符分隔的文本文件到应用程序,然后格式化它并将其输出到一个新文件.我需要做的就是根据请求从日期中删除秒并输出; 我想我只是让它复杂化了.

蒂姆的答案适用于这种情况!

谢谢大家,他们提出了建议!

Jon*_*eet 6

我会建议完全不同的方法:解析值到适当的特定域方式(我会使用LocalDateTime来自约达时间),然后重新格式化它在你想要的格式.这将同时执行验证,因此您不会因为碰巧在其中包含冒号而在系统中传播错误数据.

Joda Time提供了解析和格式化设施(请参阅DateTimeFormatDateTimeFormatter),因此它应该非常简单.