android日历库保存错误的日期

时间:2012-05-20 20:45:14

标签: android calendar

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

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

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

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