将SQLLite日期整数转换为Java日期
我正在使用SQLLite代码,该代码将日期存储为整数(我假设从style以来有这么多天)。我想将此int转换为日期,但此将SQLLite日期整数转换为Java日期,java,sqlite,Java,Sqlite,我正在使用SQLLite代码,该代码将日期存储为整数(我假设从style以来有这么多天)。我想将此int转换为日期,但此 public int getDate(){ ... Date d = new Date(m.getDate()); 似乎给了我错误的值 有什么想法吗 更新 问题1。) 如果有人有同样的问题,问题是SQLLite整数并不完全是整数。如果我打电话 item.setDate(rs.getInt("date")); 我得到一个负数,显然这是因为DB中的值大于java int的最大
public int getDate(){
...
Date d = new Date(m.getDate());
似乎给了我错误的值
有什么想法吗
更新
问题1。)
如果有人有同样的问题,问题是SQLLite整数并不完全是整数。如果我打电话
item.setDate(rs.getInt("date"));
我得到一个负数,显然这是因为DB中的值大于java int的最大值
item.setDate(rs.getLong("date"));
该值与预期值相同。这与创建为整数的表值无关
现在我得到了与DB匹配的值“1383769720540277”,但是
Date d = new Date(m.getDate()*1000L);
给我的日期是886-10-29,看起来也不对
更新2
根据工具,它必须以毫秒*1000为单位。我正在研究一种方法来处理这个问题,因为.001是一个双精度的,不能用来创建一个没有舍入的长整数 这里有几个问题
一旦这两项都完成了,它似乎就可以正确地处理了。如果有人对正在发生的事情有更详细/更好的链接,请随时详细说明检查。这里有几个问题
一旦这两项都完成了,它似乎就可以正确地处理了。如果有人对正在发生的事情有更详细/更好的链接,请随时详细说明以供检查。SQLLite整数最多可以有8个字节(-2^63到2^63-1);看 Java整数只有4个字节(-2^31到2^31-1);a长为8字节;看 现在距离UNIX时代已经1384621644秒了;这是138462164000毫秒或138462164000000微秒。因为它们大于4字节(4294967295),所以您肯定需要一个Java长文件来保存它们 看起来你的时间戳是以微秒为单位的。
java.util.Date
构造函数从纪元开始需要毫秒。你可以从微秒除以1000来计算毫秒;无需转换为字符串并返回:
item.setDate(rs.getLong(“日期”)/1000)代码>SQLLite整数最多可以有8个字节(-2^63到2^63-1);看
Java整数只有4个字节(-2^31到2^31-1);a长为8字节;看
现在距离UNIX时代已经1384621644秒了;这是138462164000毫秒或138462164000000微秒。因为它们大于4字节(4294967295),所以您肯定需要一个Java长文件来保存它们
看起来你的时间戳是以微秒为单位的。java.util.Date
构造函数从纪元开始需要毫秒。你可以从微秒除以1000来计算毫秒;无需转换为字符串并返回:
item.setDate(rs.getLong(“日期”)/1000)代码>您可以发布一个示例SQLLite整数值和您期望的日期吗?java.util.Date从1/1/70开始需要毫秒,而不是天。您可以发布一个示例SQLLite整数值和您需要的日期吗?java.util.Date期望从1970年1月1日起的毫秒,而不是天。非常感谢您的评论,最后一行除外。你试过了吗?因为当我这样做的时候,我得到了一个编译时异常,说它不能将double转换为long。当然,我使用了1000L而不是1000。此外,我浏览了您之前发布的SQLLite页面,但我没有看到它在哪里列出了数据类型的大小,这对我很有用:long ts=13846216440000L;日期dt=新日期(ts/1000)代码>整数大小信息位于存储类和数据类型部分:整数下。该值是一个有符号整数,存储在1、2、3、4、6或8字节中,具体取决于该值的大小。除了最后一行之外,非常感谢您的评论。你试过了吗?因为当我这样做的时候,我得到了一个编译时异常,说它不能将double转换为long。当然,我使用了1000L而不是1000。此外,我浏览了您之前发布的SQLLite页面,但我没有看到它在哪里列出了数据类型的大小,这对我很有用:long ts=13846216440000L;日期dt=新日期(ts/1000)代码>整数大小信息位于存储类和数据类型部分:整数下。该值是有符号整数,根据值的大小存储在1、2、3、4、6或8字节中。