それで私は次の形式で入ってくるオブジェクトから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();
しかし、メソッドが到達すると、これは私にnullポインタになります。
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()
)に使用されます。あなたはそれを使ってDateのString表現をDateに戻します。これは正しくないはずですよね?
Apache Commonsを使うだけ