Помощник
Здравствуйте, гость ( Вход | Регистрация )
|
|
7:05:2008, 20:36
|
|
Новенький ![]() Группа: Программист Сообщений: 57 Регистрация: 10:10:2006 Пользователь №: 7 035 Специализация: разработка ПО, внедренец Репутация: 0
|
я не понимаю, каким образом можно поставить дату в Григорианский календарь. Вот смотрите:
Код private Date fromStringToDate(String strDate) { StringTokenizer tokenizer = new StringTokenizer(strDate, "."); GregorianCalendar calendar = new GregorianCalendar(1918, Calendar.JANUARY, 1); String str1 = tokenizer.nextToken(); String str2 = tokenizer.nextToken(); String str3 = tokenizer.nextToken(); // calendar.setTime(new Date(Integer.parseInt(str3), Integer.parseInt(str2), Integer.parseInt(str1))); // calendar.set(Integer.parseInt(str3), Integer.parseInt(str2), Integer.parseInt(str1)); calendar.set(GregorianCalendar.DAY_OF_MONTH, Integer.parseInt(str1)); calendar.set(GregorianCalendar.MONTH, Integer.parseInt(str2)); calendar.set(GregorianCalendar.YEAR, Integer.parseInt(str3)); String str = calendar.getTime().toString(); return calendar.getTime(); } на вход подается строка в виде: 6.04.2008. токенайзер ее разбивает на кусочки, в моем случае на 6, 4, 2008. день ставится, месяц остается текущий (т.е. май), это во-первых. дальше у меня String str - строка просто для того, чтобы убедиться, что getTime вернул дату. дальше из ф-ии возвращаю calendar.getTime(). Упс, возвращает null, это во-вторых. ПОЧЕМУ???? Ведь я убедилась строкой выше, что str заполняется датой. причем закомментированные варианты приводят к тому же результату |
|
Сообщение
#1
|
|
![]() |
|
|
13:05:2008, 12:22
|
|
Новенький ![]() Группа: Программист Сообщений: 34 Регистрация: 2:11:2006 Пользователь №: 7 523 Репутация: 0
|
Код import java.util.Date; import java.util.GregorianCalendar; import java.util.StringTokenizer; public class Test { private static Date fromStringToDate(String strDate) { StringTokenizer tokenizer = new StringTokenizer(strDate, "."); GregorianCalendar calendar = new GregorianCalendar(1918, [b]GregorianCalendar[/b].JANUARY, 1); String str1 = tokenizer.nextToken(); String str2 = tokenizer.nextToken(); String str3 = tokenizer.nextToken(); // calendar.setTime(new Date(Integer.parseInt(str3), Integer.parseInt(str2), Integer.parseInt(str1))); // calendar.set(Integer.parseInt(str3), Integer.parseInt(str2), Integer.parseInt(str1)); calendar.set(GregorianCalendar.DAY_OF_MONTH, Integer.parseInt(str1)); calendar.set(GregorianCalendar.MONTH, Integer.parseInt(str2)); calendar.set(GregorianCalendar.YEAR, Integer.parseInt(str3)); String str = calendar.getTime().toString(); return calendar.getTime(); } public static void main(String[] args) { Date date=fromStringToDate("6.04.2008"); System.out.println(date); } } У меня в таком виде всё нормально работает. Проверял.... |
|
Сообщение
#2
|
|
![]() |
|
Текстовая версия | Сейчас: 16:05:2008 - 17:47 |