如何将自动时间戳 table 条目从大纪元时间更改为现在?

How do I change the automatic time stamp table entry from Epoch time to now?

如何将自动时间戳 table 条目从大纪元时间更改为现在?

目前我的 table 使用以下设置:

CREATE  TABLE  IF NOT EXISTS Calculations (calculation_id INTEGER PRIMARY KEY  AUTOINCREMENT  NOT NULL  UNIQUE , data_id INTEGER, area_id INTEGER, date DATETIME NOT NULL;

我使用以下方法将条目添加到 table:

INSERT INTO Calculations (data_id , area_id , date ) VALUES (?1, ?2, date('now') );

当我回忆起日期值时,它们都是:Wed Dec 31 17:00:02 MST 1969

我的理解是 date('now') 会产生当前日期。

如何将 当前日期 插入到 android-sqlite table 条目中?

补充说明:

SQLite支持以下五种日期时间函数:

date(timestring, modifier, modifier, ...)
time(timestring, modifier, modifier, ...)
datetime(timestring, modifier, modifier, ...)
julianday(timestring, modifier, modifier, ...)
strftime(format, timestring, modifier, modifier, ...)

时间字符串

时间字符串可以是以下任意一种格式:

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
DDDDDDDDDD

我正在尝试使用 date(now) 插入当前日期。 这将输入纪元时间而不是当前日期。

收到反馈后,我更改了从数据库中检索存储日期的方式。

之前:

int date = cursor.getInt(cursor.getColumnIndex("date"));
calculation.setDate(new Date(date));

目前:

String date = cursor.getString(cursor.getColumnIndex("date"));
String[] dateArray = date.split("-"); //Split Year-Month-Day
Calendar calendar = new GregorianCalendar(Integer.parseInt(dateArray[0]), Integer.parseInt(dateArray[1]), Integer.parseInt(dateArray[2]) );

从那里我最终改变了 Calculation 日期设置为使用 Calendar 而不是 Date 对象

我认为你的sqlite逻辑是正确的。你可能在其他地方错了。我使用了 sqlite3 并使用您的脚本测试了以下内容。 date() 和 date('now') 似乎都有效。

sqlite> select date();
2015-06-24

sqlite> CREATE  TABLE  IF NOT EXISTS Calculations (calculation_id INTEGER PRIMARY KEY  AUTOINCREMENT  NOT NULL  UNIQUE , data_id INTEGER, area_id INTEGER, date DATETIME NOT NULL);
sqlite> select * from Calculations;
sqlite> INSERT INTO Calculations (data_id , area_id , date ) VALUES (1, 2, date('now') );
sqlite> select * from Calculations;
1|1|2|2015-06-24

sqlite> INSERT INTO Calculations (data_id , area_id , date ) VALUES (1, 2, date() );
sqlite> select * from Calculations;
1|1|2|2015-06-24
2|1|2|2015-06-24