2016-04-22 4 views
0

, какой будет формат даты фиников, как:
1 апреля 2016 года
3 апреля 2016
22 апреля 2016 годаФормат даты от 22 апреля 2016 года?

И есть ли API для разбора даты, как это?

Редактировать: Dupllicate questions не содержит никакого ответа на дату синтаксического анализа, содержащую 1 (st), 2 (nd), 3 (rd). Я не знаю, как разобрать st в 1-м, 2-м и rd в третий.

+0

Спасибо, эти вопросы также помогли. – andy

+0

См. Также [этот пример] (https://gist.github.com/MenoData/a133c20f54e2ee5eaa60656caccfdd11) для использования моего API (Time4J). –

ответ

1

Проблема в том, что Java не понимает суффикс ordinal indicator, 1-й, 2-й и 3-й и т. Д. Сначала вам нужно удалить это, а затем передать это в DateFormat.

Я бы также рекомендовал, чтобы ваш Locale был установлен правильно, так как «April» будет другой строкой на разных языках, которая будет оказывать географическую мобильность вашего программного обеспечения.

public static void main(String[] args) throws ParseException { 
    System.out.println(parseWithOrdinals("1st April,2016")); 
    System.out.println(parseWithOrdinals("3rd April,2016")); 
    System.out.println(parseWithOrdinals("22nd April,2016")); 
} 

private static Date parseWithOrdinals(String date) throws ParseException { 
    DateFormat format = new SimpleDateFormat("dd MMM,yyyy", Locale.UK); 
    String corrected = date.replaceFirst("(\\d+)+.*\\s(.*)", "$1 $2"); 
    return format.parse(corrected); 
} 
Смежные вопросы