java - file.lastModified() is never what was set with file.setLastModified() -
java - file.lastModified() is never what was set with file.setLastModified() -
i have problem millis set , read on android 2.3.4 on nexus one. code:
file filefolder = new file(environment.getexternalstoragedirectory(), appname + "/" + urldecoder.decode(folder.geturl())); if (filefolder != null && !filefolder.exists()) { filefolder.setlastmodified(1310198774); filefolder.mkdirs(); filefolder.setlastmodified(1310198774); } if (filefolder != null && filefolder.exists()) { long l = filefolder.lastmodified(); }
in little test write 1310198774 result returned lastmodified() 1310199771000.
even if cutting trailing "000" there's difference of several minutes.
i need sync files between webservice , android device. lastmodification millis part of info sent service. set millis created/copied files , folders check if file/folder needs overwritten.
everything working millis returned filesystem different values set.
i'm pretty sure there's wrong code - can't find it.
many in advance. hjw
so maybe i'm missing see problems code above. specific problem may due (as @jb mentioned) android issues posterity, thought i'd provide answer.
first off, file.setlastmodified()
takes time in milliseconds. here javadocs. seem trying set in seconds. code should like:
filefolder.setlastmodified(1310198774000l);
as mentioned in javadocs, many filesystems back upwards seconds granularity last-modification time. if need see same modification time in file should following:
private void changemodificationfile(file file, long time) { // round value downwards nearest sec file.setlastmodified((time / 1000) * 1000); }
java android date milliseconds
Comments
Post a Comment