Я очищаю веб-страницу, которая содержит даты в этом формате: «8 ноября 2013 года». После того, как я верну даты, они организованы в неупорядоченный массив строк. То, что я хочу сделать, - это каким-то образом преобразовать эти строки в простой формат даты, например, yyyy-MM-dd, чтобы я мог их заказать и использовать для взаимодействия с календарем?Преобразование даты строки в простой формат даты
ответ
Как о чем-то вроде этого?
private String dateLongStringConvert(String dateLongString) {
// split long date string into string array
String[] dateArray = dateLongString.split(" ");
// get day of month as an integer (strip out non numeric chars)
int dayOfMonth = Integer.parseInt(dateArray[0].replaceAll("\\D+", ""));
// Convert month string to number
String month = "";
switch (dateArray[1]) {
case "January":
month = "01";
case "Feburary":
month = "02";
case "March":
month = "03";
case "April":
month = "04";
case "May":
month = "05";
case "June":
month = "06";
case "July":
month = "07";
case "August":
month = "08";
case "September":
month = "09";
case "October":
month = "10";
case "Novemember":
month = "11";
case "December":
month = "12";
}
// return formated date string
return dateArray[2] + "-" + month + "-" + String.format("%02d", dayOfMonth);
}
Это сработало, но мне пришлось внести пару изменений. Мне пришлось удалить переключатель (String), потому что оператор switch на объектах String - это новая функция, введенная в Java 1.7. К сожалению, для Android требуется версия 1.6 или 1.5. Вместо этого я использовал несколько операторов if else. Также при разбиении строки в массив пришлось разделить («\\ s +»), чтобы идентифицировать пробелы. Большое спасибо за вашу помощь! –
Правильный способ сделать это - использовать парсер, например, Stanford Temporal Tagger, и определить даты из текста. Хороший GUI (http://nlp.stanford.edu:8080/sutime/process) обеспечивается командой, чтобы оценить инструмент на
Ссылка не действительна? –
to_char ('YYYY/MM/DD HH24: MI: SS')
String inputDate = "8th November 2013";
inputDate = inputDate.replaceAll("([0-9])st|nd|rd|th|\\.", "$1"); // get rid of the th.
Date date = new SimpleDateFormat("d MMM y", Locale.ENGLISH).parse(inputDate); // parse input date
String outputDate = new SimpleDateFormat("yyyy-MM-dd").format(date); // format to output date
Пробовал это, и он удаляет штраф, но когда он пытается отформатировать результат, я получаю следующее исключение: «Непревзойденная дата:« 8 ноября 2013 » –
- 1. Преобразование строки в формат даты
- 2. Преобразование строки в формат даты
- 3. Преобразование строки в формат даты
- 4. Преобразование строки в формат даты
- 5. преобразование даты в формат даты
- 6. Преобразование строки даты в нужный формат строки даты
- 7. Преобразование строки Java в формат даты
- 8. Преобразование строки даты в формат даты в python?
- 9. Преобразование строки в pyspark в формат даты
- 10. Преобразование строки в формат даты в Stata
- 11. Преобразование строки в формат даты в android
- 12. Преобразование строки в формат даты в Python
- 13. Преобразование строки в формат даты в JS
- 14. преобразование строки в формат даты в jsp
- 15. Простой формат даты
- 16. Android: Простой формат даты
- 17. PHP простой формат даты
- 18. Преобразование любой строки даты в текущий формат даты культуры
- 19. Преобразование даты (строки) в другой формат даты (строка)
- 20. C# преобразование даты из строки в формат даты
- 21. Преобразование строки в определенный формат даты
- 22. Преобразование строки в определенный формат даты C#
- 23. Преобразование строки формата в другой формат даты
- 24. Преобразование объекта строки даты в другой формат
- 25. преобразование строки в формат даты и времени
- 26. Преобразование строки в строку, имеющую формат даты
- 27. Преобразование строки в формат даты iso
- 28. Преобразование строки даты в формат oracle
- 29. Преобразование строки даты в DateTime Формат vb.net
- 30. Преобразование строки в определенный формат даты
получит ли эта нить начала: http://stackoverflow.com/questions/4011075/how-do-you-format-the-day-of-the-month-to-say- 11-я-21-я-23-я-ява – EdgeCase
Да, если бы я сделал это таким образом, мне пришлось бы написать целый класс для синтаксического анализа и форматирования даты строки по своему вкусу !? Очень много времени, но кажется, что это может быть мой единственный выбор? –