Android SQLite日期('现在')不准确

时间:2014-05-11 17:26:18

标签: javascript sqlite cordova

如果我在Android模拟器中运行此查询,则会输出2014-05-11

SELECT date('now');

如果我在同一个模拟器中运行此javascript(使用date.js),则输出2014-05-12

new Date().toString("yyyy-MM-dd")

如果我转到模拟器的系统设置>日期&时间,它是5/12/2014,这意味着javascript结果是正确的。

那我怎么解决这个问题呢?它与GMT设置有关吗?我目前的解决方案是避免SQL中的所有date('now')函数调用(我已将其替换为):

var sql = " SELECT '"+new Date().toString(yyyy-MM-dd)+"' ";

1 个答案:

答案 0 :(得分:1)

时区。 SELECT date('now')以UTC格式返回当前日期。 new Date().toString("yyyy-MM-dd")使用本地时区。您当地的时区是12月5日,而UTC仍然是11月5日。

要在SQL中获取本地时间,请改用SELECT date('now', 'localtime')