java - android 在数据库中添加或删除时间戳中的小时

标签 java database sqlite datetime

我想从 Android 中的时间戳中减去几天。

我有一个SQLite具有 long 类型日期字段的数据库。 当我执行一个查询时,我说 date = date - (3 * 86400000) 在将其转换为可读日期时,有时会遇到一小时的差异。

但这怎么可能呢?这与我的时区夏令时一小时有关吗?

因为如果这就是原因,我会觉得很奇怪,因为您正在使用两个长值进行计算,并且将它们转换回日期时间后,不应该出现夏令时问题?

最佳答案

感谢您的回复,但我找到了解决方案。 看来,当您在时间戳中添加以毫秒为单位的天数并且其间的日光设置存在一个小时的差异时,日期会自动更正。

当我执行以下操作时,小时将被忽略:

Date d = new Date();
d.setDays(d.getDays() - 2);

但是,我建议使用 Joda 库,因为它更加灵活且易于使用。

关于java - android 在数据库中添加或删除时间戳中的小时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13093016/

相关文章:

java - 如何模拟仅在使用 JUnit/Mockito 测试重试时抛出一次异常?

php - 到实时站点的数据库连接

database - 我可以回滚我已经提交的事务吗? (数据丢失)

python - 具有固定队列大小或缓冲区的 multiprocessing.Pool.imap_unordered?

android - 在 Android 中使用预加载的 Sqlite 数据库

java - 如何使用 objectId 或 hashcode 对对象进行同步?

java - 表达语言和接口(interface)

php - fatal error : Call to undefined function mysqli_result()

python - SQLite 返回无法转换为可用字符串的 Unicode 缓冲区

java - Java 中的 ASCII 字符集问题