0
我想將一些字符串解析成日期,並將日期格式化爲另一種樣式的字符串。在解析某個日期時間字符串而不是年份時,我發現了以下難題。我有兩個不同的輸入字符串,但輸出是相同的。這真的很困惑。任何建議如何解決這個問題?謝謝。在日期時間解析謎題沒有年份
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;
}
感謝喬恩,它的工作原理。我忘記了如何使用'hh'和'HH'。這與年份領域毫無關係。 –