sqlite の私のテーブルでは、次のように gmt タイム ゾーンのタイムスタンプに日付を格納しました。
CREATE TABLE task (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
date INTEGER,
name TEXT
);
データベースにクエリを実行すると、現地時間で日付を取得したいので:
NSTimeInterval now = [[NSDate date] timeIntervalSince1970];
現在のタイムスタンプは私のローカル タイム ゾーンのものです。たとえば、可能であれば次のようにします。
SELECT id,date,name FROM task WHERE converttolocal(date) = now;
converttolocal
たとえば、タイムスタンプを自動的に変換するような関数がsqliteに存在するかどうかを知りたい...
編集
私はこれを見つけました:
strftime('%s',date, 'unixepoch', 'localtime')
ただし、たとえばデータベースの日付 gmt が次の場合:1375660800
つまり:
GMT: Mon, 05 Aug 2013 00:00:00 GMT
関数 strftime の後、結果は次のとおりです。1375668000
これは、私の現地時間に対応しています。
(CEST) Mine time zone: 05 agosto 2013 04:00:00
しかし、私は strftime 関数の結果が私にこれを与えることを望みます:1375653600
つまり:
Mine time zone: 05 agosto 2013 00:00:00 CEST
なぜこの結果が得られないのですか?