2012-04-12 4 views
0

私は日付を保存します。これは今までの1698-19-20であり、2012-4-12ではありません。ここでエラーが表示されますか? 日付を整数として保存しました。 1334262386066ミリ秒SqLiteで偽の日付を取得しました

42.309182713914年+ 1970年=〜2012

コード:

Calendar cal = Calendar.getInstance(); 
Date date = cal.getTime(); 
calendarEntity.setDate(date); 

sqliteのクエリ:

SELECT strftime('%Y-%m-%d',DATE) FROM CALENDAR_ENTITY 

表:

電卓で計算

CREATE TABLE 'CALENDAR_ENTITY' ('_id' INTEGER PRIMARY KEY ,'TITLE' TEXT,'NOTICE'  TEXT,'DATE' INTEGER,'BABY_ID' INTEGER NOT NULL) 
+0

2012年4月12日である必要がありますが、1698-19-20になります。デバッガでは正しいです、データベース内でのみ、それは間違っています。 – user949884

+0

少なくとも私のコンピュータではうまく動作します。この日付オブジェクトを印刷して、何がデータベースに送信されているかを確認しましたか? – mbaydar

+0

ORDのためのフレームワークとして、java.util.Date形式でgreenDaoを使用しました。 – user949884

答えて

1

このように長くこの返品を使用できる場合は、問題が解決すると思います。

Date date = new Date(1334262386066l);

これは期待どおりの結果を返します。そして、これは、それが印刷さ何

Thu Apr 12 23:26:26 EEST 2012

+0

あなたはsqliteで長くキャストする必要がありますか? – user949884

+0

すでに長いので、自分のコードに示すように使用することができます。私はstrftimeが正しく動作しないと思います。 – mbaydar

+0

ありがとうございました! – user949884

1

問題はstrftime機能は、これらのいずれかの形式でtextとして日付を期待していることです。

YYYY-MM-DD 
YYYY-MM-DD HH:MM 
YYYY-MM-DD HH:MM:SS 
YYYY-MM-DD HH:MM:SS.SSS 
YYYY-MM-DDTHH:MM 
YYYY-MM-DDTHH:MM:SS 
YYYY-MM-DDTHH:MM:SS.SSS 
HH:MM 
HH:MM:SS 
HH:MM:SS.SSS 
now 
DDDD.DDDD 

あなたはstrftime機能を扱うことができないintegerとして日付を格納しています。 SQLite datetime関数の詳細はhere(またはhere、80ページ)を参照してください。

+0

説明をありがとう! – user949884

+0

しかし、これは動作します。 日時/ 1000 SELECT strftime( '%m-%d-%Y'、1092941466、 'unixepoch'); – user949884

+0

私の場合:SELECT strftime( '%m-%d-%Y'、1334262386066/1000、 'unixepoch')FROM BABY_ENTITY – user949884

関連する問題