0

我正在使用日历库从我的应用程序中保存日期。我正在使用 sqlite3,只能将整数和字符串保存到我的数据库中。日历转换为 long ,当转换回来时显示正确的日期。但是要将其保存在我的数据库中,我必须将其转换为 int。当我将 int 转换回 long 并使用 setTimeInMillis() 时,我的日期会发生变化。我知道当您从 long 转换为 int 时,您会失去精度。有解决办法吗?有人告诉我,我必须使用日历库来完成我正在做的事情。下面是给我带来问题的代码,任何想法。已经做了谷歌搜索,没有任何运气

    long timing=0;
    timing =dateAndTime.getTimeInMillis();
    testDate.setTimeInMillis(timing);
    int dates=  (int) timing;
    timing=dates;
    testDate.setTimeInMillis(timing);
4

2 回答 2

3

这并不是说你失去了精确度。long 比整数包含更多字节,因此您将丢失 int 无法保存的任何数据。您最好将 long 转换为 String 并将其存储为 ( Long.toString(l))。当您想将其从数据库中取出时,只需将 String 解析为 long ( Long.parseLong(s))。

于 2012-05-20T20:51:28.210 回答
2

为了让您了解 int 的限制程度,您可以在 int 中存储的最长时间(以毫秒为单位)为 49 天。long 拥有足够的信息来计算 5.8 亿年的毫秒数。

于 2012-05-20T20:53:39.520 回答