Java разбирает дату, например четверг, 29 мая 2008 г., 13:45, в более удобный формат? - PullRequest
1 голос
/ 18 июня 2011

Мне нужно разобрать даты вроде Thursday, May 29, 2008 1:45 PM для текущего проекта, и у меня не так много времени, чтобы это сделать.Я понимаю, что могу написать некоторый пользовательский парсер, но это займет некоторое время, я попробовал несколько парсеров дат, которые я нашел, но ни один из них не работает для этого, я был бы очень признателен, если у кого-нибудь есть совет.В основном мне просто нужно записать месяц, день и год в виде целых чисел, например:

int month = 5;
int date = 29;
int year = 2008

спасибо за любой совет

Ответы [ 3 ]

4 голосов
/ 18 июня 2011

Использование SimpleDateFormat. Согласно документации, шаблон вашей строки даты будет "EEEE, MMMM d, yyyy h:mm a". Вы можете создать объект SimpleDateFormat, используя этот шаблон и использовать его для разбора строк:

DateFormat dateParser = new SimpleDateFormat("EEEE, MMMM d, yyyy h:mm a");
Date myDate = dateParser.parse("Thursday, May 29, 2008 1:45 PM");

Как отмечает BalusC в комментариях, если ваш код будет использоваться на машинах, для которых английский не установлен в качестве основного языка, приведенный выше фрагмент не будет выполнен. Чтобы избежать этого, указывайте английский явно при создании синтаксического анализатора.

 DateFormat dateParser = new SimpleDateFormat("EEEE, MMMM d, yyyy h:mm a", Locale.ENGLISH);

Чтобы извлечь отдельные значения из объекта даты, вам необходимо создать Calendar:

Calendar calendar = Calendar.getInstance(); // or Calendar.getInstance(Locale.ENGLISH);
calendar.setTime(myDate);

Затем вы можете запросить значения, которые вы хотите.

int month = calendar.get(Calendar.MONTH);
int date = calendar.get(Calendar.DATE);
int year = calendar.get(Calendar.YEAR);
0 голосов
/ 18 июня 2011
public Date dateFormat(String inputTimestamp) {
    DateFormat dateFormat = new SimpleDateFormat("E, MMM dd, yyyy hh:mm a", Locale.US);
    Date date = null;
    try {
        date = dateFormat.parse(inputTimestamp);
    } catch (ParseException ex) {
        System.err.println("There was a parse exception :"+ex.getMessage());
    }
    return date;
}

Используйте SimpleDateFormat для форматирования даты.

0 голосов
/ 18 июня 2011
...