如果我在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)+"' ";
答案 0 :(得分:1)
时区。 SELECT date('now')
以UTC格式返回当前日期。 new Date().toString("yyyy-MM-dd")
使用本地时区。您当地的时区是12月5日,而UTC仍然是11月5日。
要在SQL中获取本地时间,请改用SELECT date('now', 'localtime')
。