将date对象转换为日历对象
所以我从表单中得到一个传入对象的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
用于将string转换为date( parse()
)或date转换为string( format()
)。 您正在使用它将date的string表示法parsing回date。 这不可能是正确的,可以吗?
只需使用Apache Commons
DateUtils.toCalendar(datedate)
这很容易…将date转换为日历如下所示:
Calendar cal=Calendar.getInstance(); DateFormat format=new SimpleDateFormat("yyyy/mm/dd"); format.format(date); cal=format.getCalendar();
这个函数将从javadate对象中返回sqldate对象。
public java.sql.Date convertJavaDateToSQL(Date d) { java.sql.Date d1= new java.sql.Date(d.getTime()); return d1; }