Trong Java, chúng ta có thể sử dụng Files.readAttributes() method để lấy các medata của một file bất kỳ. Trong các metadata này chúng ta có thể xem lần chỉnh sửa cuối cùng của file thông qua lastModifiedTime() method.
Path file = Paths.get("/home/deft/file.txt"); BasicFileAttributes attr = Files.readAttributes(file, BasicFileAttributes.class); System.out.println("lastModifiedTime: " + attr.lastModifiedTime());
BasicFileAttributes
Trong ví dụ trên, BasicFileAttributes là một class được cung cấp bởi Java NIO dùng để lưu trữ các metadata của file như thời gian khởi tạo file, lần cuối truy cập, và lần cuối chỉnh sửa file.
import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.attribute.BasicFileAttributes; public class GetLastModifiedTime1 { public static void main(String[] args) { String fileName = "/home/deft/file.txt"; try { Path file = Paths.get(fileName); BasicFileAttributes attr = Files.readAttributes(file, BasicFileAttributes.class); System.out.println("creationTime: " + attr.creationTime()); System.out.println("lastAccessTime: " + attr.lastAccessTime()); System.out.println("lastModifiedTime: " + attr.lastModifiedTime()); } catch (IOException e) { e.printStackTrace(); } } }
Output
creationTime: 2020-07-20T09:29:54.627222Z lastAccessTime: 2020-07-21T12:15:56.699971Z lastModifiedTime: 2020-07-20T09:29:54.627222
Ngoài ra, BasicFileAttributes cũng hoạt động tương tự trên một thư mục, chúng ta cũng có thể xem các metadata của thư mục bằng cách chỉnh sửa lại đường dẫn thay vì trỏ đến file thì trỏ đến thư mục trong ví dụ trên.
File.lastModified
Trong Java IO, chúng ta cũng có thể sử dụng File.lastModified() để xem thời gian cuối cùng mà file được chỉnh sửa. Tuy nhiên method này trả về dạng milliseconds. Chúng ta có thể sử dụng SimpleDateFormat để chuyển đổi sang dạng ngày tháng dễ đọc hơn.
import java.io.File; import java.text.SimpleDateFormat; public class GetLastModifiedTime2 { public static void main(String[] args) { String fileName = "/home/deft/test"; File file = new File(fileName); System.out.println("Before Format : " + file.lastModified()); SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss"); System.out.println("After Format : " + sdf.format(file.lastModified())); } }
Output
Before Format : 1595237394627 After Format : 07/20/2020 17:29:54
Nguồn
https://mkyong.com/java/how-to-get-the-file-last-modified-date-in-java/