如何在SQLite中设置时区



我有一个这样的数据库查询:

SELECT * FROM screenings WHERE time(time)>time('now') ORDER BY time(time);

当时区设置为GMT+0:00时,它工作正常。但是,如果时区具有不同的含义(例如,GMT+6:00),则数据库查询结果分别与GMT+0:00和显示的信息不匹配。

所以,我的问题是如何在SQLite中设置本地时区?

谢谢。

不要首先存储带有时区的值。相反,将数据标准化为UTC,并在查询中一致使用UTC。

只有在为显示目的格式化数据时,才能根据用户的本地时区进行调整。

需要显示时将数据保存在UTC Timezone.中,然后提取数据,然后转换为用户的Timezone

最好将所有时间信息记录为UTC。当您希望向用户显示时间时,您应该将其格式化,然后将其显示为用户自己的时区。

除了使用UTC时区保存所有日期外,如果对您的应用程序有意义,我还会考虑存储这些时间戳所指的时区。

存储Calendar.getTimeInMillis()返回的UTC时间戳和时区的基本原理是,如果您存储时间戳(例如,当地时区下午3:15/UTC下午1:15),然后飞往不同的时区,然后检索时间戳,则会对您存储的下午1:15 UTC时间戳应用不同的偏移量,并且显示的结果不会是下午3:15。

我不知道这是一种常见的做法,还是一个好主意,所以我很感激一些反馈。

相关内容

  • 没有找到相关文章

最新更新