1. ホーム

[解決済み】Dateオブジェクトをcalendarオブジェクトに変換する【重複

2022-04-28 21:50:44

質問

そこで、フォームに入力されたオブジェクトから日付属性を取得します。

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() ). あなたはこれを、日付の文字列表現をパースして日付に戻すために使用しています。これは正しいとは言えませんよね?