0

Android から、最初に iOS から ( NSDate経由で) 作成された SQLite3 データベースを読んでいます。テーブルと値は問題なく読み取れますが、TIMESTAMP の問題があります...

TIMESTAMPフィールドは、SQLite データベース ブラウザーで表示すると、数値を示します。たとえば、データベースには385192800という値があり、これは 2013 年 3 月 17 日 6:00 AM UTC/GMT+0 に相当すると思われます。

Android (Java) でこの日付を解釈するにはどうすればよいですか? 通常、タイムスタンプは 1970 年 1 月 1 日からの秒数 (またはミリ秒単位) にする必要があります。この日付はまだ近くにありません...

以下のクエリを発行すると、「1982-03-16」が返されます...

SELECT strftime('%Y-%m-%d', datetime(385192800, 'unixepoch')) AS somedate 
FROM SOMETABLE LIMIT 1

典型的な UNIX タイムスタンプであってはなりません。SQLite3 に永続化する場合、iOS の NSDate は何をしますか?

4

1 に答える 1

2

コア データには、2001 年 1 月 1 日の基準日を基にしたタイムスタンプが保存されます。詳細については、このディスカッションを参照してください。

PS: あなたの質問には、指定したタイムスタンプの年が記載されていません。

于 2013-02-01T18:23:44.857 に答える