因此,我从窗体中的传入对象中获得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());
以下是你的方法:
public static Calendar toCalendar(Date date){
Calendar cal = Calendar.getInstance();
cal.setTime(date);
return cal;
}
你所做的其他一切都是错误和不必要的。
顺便说一句,Java命名约定建议方法名以小写字母开头,所以它应该是:dateToCalendar或toCalendar(如所示)。
好吧,我们来榨你的代码,好吗?
DateFormat formatter = new SimpleDateFormat("yyyyMMdd");
date = (Date)formatter.parse(date.toString());
DateFormat用于将字符串转换为日期(parse())或日期转换为字符串(format())。您正在使用它将日期的字符串表示解析回日期。这不可能是对的,对吗?
以下是你的方法:
public static Calendar toCalendar(Date date){
Calendar cal = Calendar.getInstance();
cal.setTime(date);
return cal;
}
你所做的其他一切都是错误和不必要的。
顺便说一句,Java命名约定建议方法名以小写字母开头,所以它应该是:dateToCalendar或toCalendar(如所示)。
好吧,我们来榨你的代码,好吗?
DateFormat formatter = new SimpleDateFormat("yyyyMMdd");
date = (Date)formatter.parse(date.toString());
DateFormat用于将字符串转换为日期(parse())或日期转换为字符串(format())。您正在使用它将日期的字符串表示解析回日期。这不可能是对的,对吗?