2011-01-04 6 views
0

DatePickerウィジェットからデータを取得し、アプリ内のsqliteデータベースに保存するための助けを探しています。私は次のコードを持っています:Androidの日付に関するヘルプ

java.util.Date utilDate = null; 
      String y = Integer.toString(date.getDayOfMonth()) + "/" + (date.getMonth()+1) + "/" + Integer.toString(date.getYear()); 
      SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyy"); 
      utilDate = formatter.parse(y); 
      java.sql.Date z = new java.sql.Date(utilDate.getDate()); 
      x = z.toString(); 
      Log.v("The date: ", x); 
} 

ここで、dateはDatePickerウィジェットです。もし私がutilDate変数(すなわち日付のJava版)をlogCatを使って出力するとうまくいくように見えて、私には次のような書式が与えられます:Tue Jan 04 00:00:00 GMT 2011私は期待していますが、日付のSQLバージョン、それは常に私に日付1970年1月1日を与える。私は解決策がとてもシンプルだと確信していますが、私はそれを見ることはできません。

+0

私はあなたのコードはjava.sql.Date z = new java.sql.Date(utilDate)であるべきだと思います。 – Sandy

答えて

2

この部分:utilDate.getDate()が間違っています。 Javadocから

引用:

はこのDateオブジェクトによって表される月の日を返します。返される値は、このDateオブジェクトによって表される瞬間を含むか、または開始する月の日を表す1〜31の間であり、ローカルタイムゾーンで解釈されます。

したがって、1から31の間の数値が得られます。これは、1970年1月1日00:00:00.000 GMTから経過したミリ秒数を表します。

使用

java.sql.Date z = new java.sql.Date(utilDate.getTime()); 

、すべてがOKでなければなりません。

+0

ありがとう、私はそれが何か簡単だろうと思っていました。 – SamRowley

関連する問題