在Java中我们可以使用DateTimeFormatter
把FileTime
转换为自定义的格式。
public static String formatDateTime(FileTime fileTime) {
LocalDateTime localDateTime = fileTime
.toInstant()
.atZone(ZoneId.systemDefault())
.toLocalDateTime();
return localDateTime.format(
DateTimeFormatter.ofPattern("MM/dd/yyyy HH:mm:ss"));
}
1. 文件最后访问日期
该例子演示了如何使用自定义的格式显示文件的最后访问日期。
package com.mkyong.io.howto;
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;
import java.nio.file.attribute.FileTime;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
public class GetLastModifiedTime {
private static final DateTimeFormatter DATE_FORMATTER =
DateTimeFormatter.ofPattern("MM/dd/yyyy HH:mm:ss");
public static void main(String[] args) {
String fileName = "/home/mkyong/test";
try {
Path file = Paths.get(fileName);
BasicFileAttributes attr =
Files.readAttributes(file, BasicFileAttributes.class);
// default YYYY-MM-DDThh:mm:ss[.s+]Z
System.out.println("lastModifiedTime: " + attr.lastModifiedTime());
FileTime fileTime = attr.lastModifiedTime();
System.out.println("lastModifiedTime: " + formatDateTime(fileTime));
} catch (IOException e) {
e.printStackTrace();
}
}
public static String formatDateTime(FileTime fileTime) {
LocalDateTime localDateTime = fileTime
.toInstant()
.atZone(ZoneId.systemDefault())
.toLocalDateTime();
return localDateTime.format(DATE_FORMATTER);
}
}
输出
lastModifiedTime: 2020-07-20T09:29:54.627222Z
lastModifiedTime: 07/20/2020 17:29:54