简体   繁体   中英

Getting the last modified date of a file in Java

I'm making a basic file browser and want to get the last modified date of each file in a directory. How might I do this? I already have the name and type of each file (all stored in an array), but need the last modified date, too.

java.io.File的 javadocs 中:

new File("/path/to/file").lastModified()

Since Java 7 , you can use java.nio.file.Files.getLastModifiedTime(Path path) :

Path path = Paths.get("C:\\1.txt");

FileTime fileTime;
try {
    fileTime = Files.getLastModifiedTime(path);
    printFileTime(fileTime);
} catch (IOException e) {
    System.err.println("Cannot get the last modified time - " + e);
}

where printFileName can look like this:

private static void printFileTime(FileTime fileTime) {
    DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy - hh:mm:ss");
    System.out.println(dateFormat.format(fileTime.toMillis()));
}

Output :

10/06/2016 - 11:02:41

You could do the following to achieve the result: Explained the returns types etc. Hope it helps you.

File file = new File("\home\noname\abc.txt");
String fileName = file.getAbsoluteFile().getName(); 
// gets you the filename: abc.txt
long fileLastModifiedDate = file.lastModified(); 
// returns last modified date in long format 
System.out.println(fileLastModifiedDate); 
// e.g. 1644199079746
Date date = new Date(fileLastModifiedDate); 
// create date object which accept long
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); 
// this is the format, you can change as you prefer: 2022-02-07 09:57:59
String myDate = simpleDateFormat.format(date); 
// accepts date and returns String value
System.out.println("Last Modified Date of the FileName:" + fileName + "\t" + myDate); 
// abc.txt and 2022-02-07 09:57:59

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM