Я знаю, що це запитання задається досить багато, і, очевидно, ви не можете проаналізувати жодної довільної дати. Однак я виявляю, що бібліотека python-dateutil може аналізувати кожну дату, яку я кидаю на неї, і все це вимагає абсолютно нульових зусиль для з'ясування рядка формату дати. Час Joda завжди продається як чудовий аналізатор дат Java, але він все одно вимагає, щоб ви вирішили, в якому форматі ваша дата, перш ніж вибрати формат (або створити власний). Ви не можете просто зателефонувати DateFormatter.parse (mydate) і магічно повернути об'єкт Date назад.
Наприклад, дата "Ср, 04 квітня, 05:09:06 GMT-06: 00 2009" правильно розібрана з python-dateutil:
import dateutil.parser
print dateutil.parser.parse('Wed Mar 04 05:09:06 GMT-06:00 2009')
але наступний дзвінок часу Joda не працює:
String date = "Wed Mar 04 05:09:06 GMT-06:00 2009";
DateTimeFormatter fmt = ISODateTimeFormat.dateTime();
DateTime dt = fmt.parseDateTime(date);
System.out.println(date);
І створення власного DateTimeFormatter перемагає мету, оскільки це, схоже, те саме, що використання SimpleDateFormatter з правильним рядком формату.
Чи існує подібний спосіб синтаксичного аналізу дати в Java, як python-dateutil? Мені не байдужі помилки, я просто хочу, щоб вони в основному були досконалими.
03/04/2010означає - 3 квітня 2010 року або 4 березня 2010 року?