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

Popular posts from this blog

iphone - Dismissing a UIAlertView -

intellij idea - Update external libraries with intelij and java -

javascript - send data from a new window to previous window in php -