你的問題是混淆
你似乎在要求的日期時間創建一個文件時。但是你也可以在你的第一句話中提到一些日期格式。然後你特指圖像文件,這意味着你想要以jpeg和其他一些圖像格式嵌入元數據。
您的問題有它自己的答案
如果你想要的是一個文件的創建時間,在這個問題的示例代碼已經有一個信息,一個java.nio.file.attribute.FileTime
對象。
這是我自己演示的一些示例代碼。
Path p = Paths.get("/Volumes/Macintosh HD/Users/johndoe/text.txt");
BasicFileAttributes view = null;
try {
view = Files.getFileAttributeView(p, BasicFileAttributeView.class).readAttributes();
} catch (IOException ex) {
Logger.getLogger(App.class.getName()).log(Level.SEVERE, null, ex);
}
// As of Java 7, the NIO package added yet another date-time class to the Java platform.
java.nio.file.attribute.FileTime fileTimeCreation = view.creationTime();
java.nio.file.attribute.FileTime fileTimeLastModified = view.lastModifiedTime();
那fileTimeCreation
對象有你的文件的創建日期時間信息。請閱讀the doc關於如何使用它。
要與其他類一起使用,您可能希望轉換爲另一種類型的日期 - 時間對象。使用Joda-Time或Java 8中的新java.time.* package。避免舊的java.util.Date &日曆類與Java捆綁在一起,因爲它們非常麻煩。
不要忘了時區。通常更好地指定一個所需的時區,而不是依賴於默認值。
// Convert to Joda-Time.
DateTimeZone timeZone = DateTimeZone.forID("Europe/Paris");
org.joda.time.DateTime dateTime = new DateTime(fileTimeCreation.toMillis(), timeZone);
// Convert to java.time.* package in Java 8.
ZoneId zoneId = ZoneId.of("Europe/Paris");
ZonedDateTime zonedDateTime = ZonedDateTime.parse(fileTimeCreation.toString()).withZoneSameInstant(zoneId);
// Convert to java.util.Date
// Caution: I do not recommend using java.util.Date & Calendar classes. But if you insist…
java.util.Date date = new java.util.Date(fileTimeCreation.toMillis());
轉儲到控制檯...
System.out.println("fileTimeCreation: " + fileTimeCreation);
System.out.println("fileTimeLastModified: " + fileTimeLastModified);
System.out.println("Joda-Time dateTime: " + dateTime);
System.out.println("java.time zonedDateTime: " + zonedDateTime);
System.out.println("java.util.Date (with default time zone applied): " + date);
當運行...
fileTimeCreation: 2014-02-16T02:28:51Z
fileTimeLastModified: 2014-02-16T02:34:17Z
Joda-Time dateTime: 2014-02-16T03:28:51.000+01:00
java.time zonedDateTime: 2014-02-16T03:28:51+01:00[Europe/Paris]
java.util.Date (with default time zone applied): Sat Feb 15 18:28:51 PST 2014
什麼是你的問題?如何從嵌入在圖像文件中的元數據中提取日期時間?如果是這樣,爲什麼你發佈這個代碼從文件系統獲取日期時間? –
我只想得到一個創建圖像的日期時間。 –