2017-03-11 3 views
0

Ich bekomme nicht die richtige letzte Änderung von einer Klasse, die von der Klasse File erbt. Meine Methode ist folgende:Probleme mit der letzten Änderung der Datei

public Date getLastModification() { 
    Calendar cal = Calendar.getInstance(); 
    cal.setTimeInMillis(lastModified()); 
    Date dateRepresentation = cal.getTime(); 
    return dateRepresentation; 
} 

Wenn ich diese Methode in dem toString nennen, dies immer druckt Do 1. JANUAR 01.00.00 CET 1970 ich die api von Datei überprüft und ich verstehe nicht, warum das passiert . Können Sie mir bei der korrekten Implementierung helfen?

+0

Können Sie Code von lastModified() anzeigen? – jjj

+1

ich definiere die Methode lastModified() nicht, da es sich um eine Methode von File handelt, suche ich diese in API – David

Antwort

0

Ihre Logik funktioniert für mich. Sie sollten sicherstellen, dass Ihre Datei

FileTest test = new FileTest("test.txt"); 
System.out.println("Existing:" + test.getLastModification()); 

FileTest test2 = new FileTest(""); 
System.out.println("Not existing: " + test2.getLastModification()); 

Ausgang vorhanden ist:

Sat Mar 11 10:24:39 CET 2017 
File does not exist 
Thu Jan 01 01:00:00 CET 1970 

mit FileTest wie:

public class FileTest extends File { 


    public FileTest(String pathname) { 
     super(pathname); 
    } 

    public Date getLastModification() { 
     if(!exists()){ 
      System.out.println("File does not exist"); 
     } 
     Calendar cal = Calendar.getInstance(); 
     cal.setTimeInMillis(lastModified()); 
     return cal.getTime(); 
    } 
} 
0

Der einzige Grund dafür ist die Datei existiert nicht im Weg für die Sie Ihr benutzerdefiniertes Dateiobjekt erstellt haben und somit im Code cal.setTimeInMillis(lastModified());lastModified() zurückgeben 0 und Sie sehen das initialisierte lokale Datum der Kalender-API.

Verwandte Themen