2014-12-08 7 views
0

Я хочу получить дату прибытия клиента в строку и передать его как параметр методу strToCal, этот метод возвращает объект Calendar с этой датой, но он не будет работать, ошибка получения исключений разбора ID:Ошибка при преобразовании строки в календарь?

+0

то, что тип с, и что реализация Клиент? – SMA

+0

можете ли вы зарегистрировать свое исключение и добавить его в свой пост? – user902383

+0

c - объект объекта клиента, открытый класс Клиент расширяет Личность реализует Serializable { \t Клиент() { \t \t this.payBill = 0; \t} \t частный шаблон строки = "yyyy-MM-dd HH: mm: ss"; \t частная длинная payBill; \t частный номер; \t частный календарь arrDate, resTilDate; \t @almasshaikh – shayan

ответ

2

Заменить sc.next() с sc.nextLine();

потому sc.next() разделится на первом пространстве и ваша входная строка не будет правильного шаблона.

Редактировать Я попробовал этот код:

public class Test4 { 
    static String pattern = "yyyy-MM-dd HH:mm:ss"; 

    public static void main(String[] args) { 
     Calendar c = Calendar.getInstance(); 
     final Scanner input = new Scanner(System.in); 
     System.out.println("input date: "); 
     String a = input.nextLine(); 
     c = strToCal(a); 
     System.out.println(c.getTime()); 
    } 


    static Calendar strToCal(String s) { 
     try { 
      DateFormat df = new SimpleDateFormat(pattern); 
      Calendar cal = Calendar.getInstance(); 
      cal.setTime(df.parse(s)); 
      return cal; 
     } catch (ParseException e) { 
      e.printStackTrace(); 
      return null; 
     } 
    } 
} 

с next():

input date: 
2014-05-16 13:30:00 
java.text.ParseException: Unparseable date: "2014-05-16" 
     at java.text.DateFormat.parse(Unknown Source) 

с nextLine():

input date: 
2014-05-16 13:30:00 
Fri May 16 13:30:00 EEST 2014 
+0

, который тоже не работает, когда я ставлю nextLine() вместо next(), он не получит вход и не распечатает ошибку исключения разбора – shayan

+0

. Я опубликовал весь пример кода. Он работает с nextLine(). Вы используете nextInt() где-то до этого? Если это так, создайте два разных сканера: один для int и один для строк. nextLine() работает некорректно, если вы вызываете nextInt() до – MihaiC

+0

спасибо, парень, это была проблема @MihaiC – shayan

Смежные вопросы