Попытка преобразовать строковое число «7» в формат 07:00 с SimpleDateFormat - PullRequest
0 голосов
/ 24 ноября 2011

У меня следующий java-код:

    SimpleDateFormat formatter = new SimpleDateFormat("kk:mm");
    Date rangoInicio = formatter.parse(filtroHorariosIda.get(0));  

Значение для filterroHorariosIda.get (0) равно "7" (в кавычки входит строка)

ПроблемаЯва выдает исключение

java.text.ParseException Unparseable date: "7"

Я читал документы Java, и я думаю, что это совершенно разбор операции.В чем проблема?

Спасибо.

Ответы [ 4 ]

2 голосов
/ 24 ноября 2011

Я не совсем понимаю ... kk: mm ожидает чего-то в формате, ну kk: mm.Вы даете это "7".Не следует ли вместо этого передать «7:21» (или «7:00» в этом случае)?

1 голос
/ 24 ноября 2011

Для полноты простоты тест дает следующие результаты:

public void testDateParse()
{
    String probes[] = {"7","07:00","7:00","7:0",":"}; 

    for (String probe : probes) {
        try
        {
         SimpleDateFormat formatter = new SimpleDateFormat("kk:mm");
         Date rangoInicio = formatter.parse(probe);
         System.out.println(probe + " is parsable");
        }
        catch(ParseException ex)
        {
            System.out.println(probe + " is not parsable");
        }
    }       
}

7 не разбирается

07: 00 разбирается

7: 00Синтаксический анализ

7: 0 Синтаксический анализ

: Не синтаксический анализ

1 голос
/ 24 ноября 2011

Это потому, что вы пытаетесь разобрать «7» и говорите, что он должен использовать формат «kk: mm».

Попробуйте вместо этого

Date rangoInicio = formatter.parse(filtroHorariosIda.get(0) + ":00");  
1 голос
/ 24 ноября 2011

ваша строка синтаксического анализа ожидает ввода, содержащего ":" среди прочего - ваш ввод не содержит ":", поэтому, конечно, SimpleDateFormat не сможет интерпретировать ваш ввод.

Если ваш вводбыло "7: 0", это будет работать нормально.

...