我想将一些字符串解析为日期,并将日期格式化为另一种样式的字符串。在解析一些没有年份的日期时间字符串时,我发现了以下难题。我有两个不同的输入字符串,但输出是相同的。真的很困惑。任何建议如何解决这个问题?谢谢。
System.out.println(parseAndFormat("MAR 22 12:10:23",
"MMM dd hh:mm:ss", "yyyy-MM-dd a HH:mm:ss.SSS Z"));
//Actual : 1970-03-22 AM 00:10:23.000 +0800
//Expected: 1970-03-22 PM 12:10:23.000 +0800
System.out.println(parseAndFormat("MAR 22 00:10:23",
"MMM dd hh:mm:ss", "yyyy-MM-dd a HH:mm:ss.SSS Z"));
//Actual: 1970-03-22 AM 00:10:23.000 +0800
//Expected: 1970-03-22 AM 00:10:23.000 +0800
private static String parseAndFormat(String input, String parse,
String format) throws ParseException {
DateFormat parser = new SimpleDateFormat(parse, Locale.ENGLISH);
DateFormat formater = new SimpleDateFormat(format, Locale.ENGLISH);
Date date = parser.parse(input);
String result = formater.format(date);
return result;
}