如果我在 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)+"' ";
最佳答案
时区。 SELECT date('now')
返回 UTC 中的当前日期。 new Date().toString("yyyy-MM-dd")
使用本地时区。您本地的时区是 5 月 12 日,而 UTC 仍然是 5 月 11 日。
要在 SQL 中获取本地时间,请改用 SELECT date('now', 'localtime')
。
关于javascript - Android SQLite 日期 ('now' )不准确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23595706/