Я хочу проанализировать некоторые строки в Date и форматировать Date в String в другом стиле. При анализе некоторой строки datetime без года я нашел следующие головоломки. У меня есть две разные строки ввода, но выходы одинаковы. Это действительно смущает. Любое предложение, как это исправить? Благодарю.puzzle in datetime parse without year
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». Это действительно не относится к годовому полю. –