2016-11-04 3 views
0

ここでは多くの議論がありますが、私が試したことはうまくいかないことです。今までの私のテーブルに私がstringとして日付を格納、私は、これは正しい方法ではないと仮定し...だから私はテーブルを作成しました:SQLiteに日付を格納

CREATE TABLE "TRANSACTIONS" (
    "date" DATETIME, 
    ... 
} 

私は2016-11-04 10:50のように日付を保存したいので、私使用:

String timeStamp = new SimpleDateFormat("yyyy-MM-dd HH:mm").format(Calendar.getInstance().getTime()); 

私はこれをしようとするとき、私はDBにレコードを挿入するprepared Statementsを使用して:

stm.setDate(1, timeStamp); 

私はString cannot be converted to Dateことを取得します。だから私はDATE

String timeStamp = new SimpleDateFormat("yyyy-MM-dd HH:mm").format(Calendar.getInstance().getTime()); 
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm"); 
Date datee = formatter.parse(timeStamp); 

に変換してから、私はjava.util.Date cannot be converted to java.sql.Dateはので、私はこの試みた取得:java.lang.IllegalArgumentException

+0

あなたはpreparedStatement.setTimestamp(新しいタイムスタンプ(date.getTimeを()))を使用することができます。 –

答えて

0

java.sql.Dateを表し、私はそれを実行したときに、私が取得

String timeStamp = new SimpleDateFormat("yyyy-MM-dd HH:mm").format(Calendar.getInstance().getTime()); 
java.sql.Date sqlDate = java.sql.Date.valueOf(timeStamp); 

を日付ではなく、日付と時刻です。 あなたは"yyyy-MM-dd HH:mm"を渡しているため、このエラーを取得し、これには例外なしで実行されますjava.lang.IllegalArgumentException

String d1 = "2016-10-11"; 
java.sql.Date d = null ; 
d.valueOf(date1); 
System.out.println(d.valueOf(date1)); 

`

をスローしています。 あなたの必要な形式のために、あなたはjava.sql.Timestamp

 String date1 = "2016-10-11 10:45"; 
    SimpleDateFormat sm = new SimpleDateFormat("yyyy-MM-dd HH:mm"); 
    java.util.Date d2 = sm.parse(date1); 
    Timestamp time = new Timestamp(d2.getTime()); 
    System.out.println(time); 

出力を使用する必要があります - 2016-10-11 10:45:00.0

関連する問題