2010-02-25 1 views
24

Как сделать вводную строку дня рождения, такую ​​как 02 26 1991, и превратить ее в григорианский календарь?Преобразование строки в GregorianCalendar

Я попытался разобрать его первым, но он продолжает давать мне сообщение об ошибке, поэтому я не совсем уверен, что я делаю неправильно. У меня также есть другие входные данные до этой даты. Одна из них - другая строка, а вторая - двойная.

+0

Возможный дубликат [Как преобразовать дату String в объект Date или Calendar?] (Http://stackoverflow.com/questions/43802/how-to-convert-a-date-string-to- a-date-or-calendar-object) – Twonky

ответ

32

Используйте SimpleDateFormat, чтобы проанализировать дату и затем присвоить ее Calendar.

DateFormat df = new SimpleDateFormat("dd MM yyyy"); 
Date date = df.parse("02 26 1991"); 
Calendar cal = Calendar.getInstance(); 
cal.setTime(date); 

Третья линия может быть заменена:

Calendar cal = new GregorianCalendar(); 

, но я предпочитаю первый вариант.

+0

FYI: Это не обрабатывает часовой пояс. – johnstosh

1

Используйте DateFormat, как показано here:

Пример:

DateFormat dateFormat = new SimpleDateFormat("hh:mm dd/MM/yy"); 
dateFormat.setLenient(false); 
Date d = dateFormat.parse("06:23 01/05/06"); 

метод

Используйте синтаксического анализа() класса SimpleDateFormat. Вы можете использовать setLenient (false) для принудительного синтаксического анализа.