android上的文件修改时间不匹配

android上的文件修改时间不匹配,android,datetime,Android,Datetime,我将当前日期时间作为文件内容写入文件(文件可能已经存在或不存在)。稍后,我将文件的日期修改时间与作为内容包含在文件中的日期时间进行比较。但是,日期修改时间小于内容日期时间。后来发生的事情(文件的日期修改时间)怎么会有更早的时间。数据内容是json字符串,写为文本文件。(注意:我不以编程方式设置日期修改时间) 这是我的密码 SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss"); //this is how

我将当前日期时间作为文件内容写入文件(文件可能已经存在或不存在)。稍后,我将文件的日期修改时间与作为内容包含在文件中的日期时间进行比较。但是,日期修改时间小于内容日期时间。后来发生的事情(文件的日期修改时间)怎么会有更早的时间。数据内容是json字符串,写为文本文件。(注意:我不以编程方式设置日期修改时间)

这是我的密码

SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
//this is how file content is formatted for writing.
writeFile(location, dateFormat.format(new Date()))


public static void writeFile(String location, String data) {
    try {
        PrintWriter output = new PrintWriter(
                new File(location));
        output.write(data);
        output.close();
    } catch (FileNotFoundException e) {

    }
}

 **To compare**
 //read content from file
 Date date = dateFormat.parse(dateString);
 //get file modified time
 Date diskTime = new Date(file.lastModified());

 if(this.diskTime.getTime() < this.contentTime.getTime()
                        || (this.diskTime.getTime() -   this.contentTime.getTime()) > 2500)
  {
       return false;
  }
SimpleDateFormat dateFormat=新的SimpleDateFormat(“MM/dd/yyyy HH:MM:ss”);
//这就是文件内容的写入格式。
writeFile(位置,dateFormat.format(新日期()))
公共静态void writeFile(字符串位置、字符串数据){
试一试{
PrintWriter输出=新的PrintWriter(
新文件(位置));
输出。写入(数据);
output.close();
}catch(filenotfounde异常){
}
}
**比照**
//从文件中读取内容
Date=dateFormat.parse(日期字符串);
//获取文件修改时间
Date diskTime=新日期(file.lastModified());
if(this.diskTime.getTime()2500)
{
返回false;
}
问题是diskTime有时(并非总是)比内容时间早一秒,因此如果案例返回false,则会出现上述问题


这种情况是否正常发生以及如何克服(始终创建文件)?

不幸的是,Android lastModified值报告不可靠,因为它使用内部缓存,并且存在错误。你可以阅读这个问题


并做了类似的实验。如果您计划检查文件修改时间,我建议您在另一个数据存储(如SqlLite)中管理时间戳。

谢谢您的回复。我没有设置上次修改的时间,虽然我只是在写文件,希望android会更新修改的时间。你认为如果我总是重新创建文件,可能会解决问题。@pats//我的意思是,不仅
setlastmedited
方法,而且修改时间本身也不可靠。