Преобразование объекта Date в объект календаря
Итак, я получаю атрибут даты от входящего объекта в форме:
Tue May 24 05:05:16 EDT 2011
Я пишу простой вспомогательный метод, чтобы преобразовать его в метод календаря, я использовал следующий код:
public static Calendar DateToCalendar(Date date )
{
Calendar cal = null;
try {
DateFormat formatter = new SimpleDateFormat("yyyyMMdd");
date = (Date)formatter.parse(date.toString());
cal=Calendar.getInstance();
cal.setTime(date);
}
catch (ParseException e)
{
System.out.println("Exception :"+e);
}
return cal;
}
Чтобы имитировать входящий объект, я просто назначаю значения внутри текущего кода:
private Date m_lastActivityDate = new Date();
Однако это дает мне нулевой указатель, когда метод достигает:
date = (Date)formatter.parse(date.toString());
Ответы
Ответ 1
Здесь ваш метод:
public static Calendar toCalendar(Date date){
Calendar cal = Calendar.getInstance();
cal.setTime(date);
return cal;
}
Все остальное, что вы делаете, является неправильным и ненужным.
BTW, соглашения о присвоении имен Java предполагают, что имена методов начинаются с строчной буквы, поэтому это должно быть: dateToCalendar
или toCalendar
(как показано).
Хорошо, дайте молоко ваш код, не так ли?
DateFormat formatter = new SimpleDateFormat("yyyyMMdd");
date = (Date)formatter.parse(date.toString());
DateFormat
используется для преобразования строк в числа (parse()
) или Dates to Strings (format()
). Вы используете его для синтаксического анализа строкового представления даты на дату. Это может быть неправильно, не так ли?
Ответ 2
Просто используйте Apache Commons
DateUtils.toCalendar(Дата)
Ответ 3
это так просто... преобразование даты в календарь следующим образом:
Calendar cal=Calendar.getInstance();
DateFormat format=new SimpleDateFormat("yyyy/mm/dd");
format.format(date);
cal=format.getCalendar();
Ответ 4
Эта функция вернет объект даты sql из объекта даты java.
public java.sql.Date convertJavaDateToSQL(Date d)
{
java.sql.Date d1= new java.sql.Date(d.getTime());
return d1;
}