Java metadata-extractor 取得照片詳細資料

https://github.com/drewnoakes/metadata-extractor

maven

<dependency>
    <groupId>com.drewnoakes</groupId>
    <artifactId>metadata-extractor</artifactId>
    <version>2.16.0</version>
</dependency>
import com.drew.imaging.*;
import com.drew.metadata.*;

輸出全部值

Metadata metadata = ImageMetadataReader.readMetadata(file);
for (Directory directory : metadata.getDirectories()) {
    System.out.println(directory.getName());
    for (Tag tag : directory.getTags()) {
        String tagName = tag.getTagName();
        String description = tag.getDescription();
        
        System.out.println(tagName + " : " + description);
    }
    System.out.println("----------------");
}

拍攝時間

Metadata metadata = ImageMetadataReader.readMetadata(file);
Directory directory = metadata.getFirstDirectoryOfType(ExifSubIFDDirectory.class);
if (directory != null && directory.containsTag(ExifSubIFDDirectory.TAG_DATETIME_ORIGINAL)) {
    Date date = directory.getDate(ExifSubIFDDirectory.TAG_DATETIME_ORIGINAL);
    System.out.println(new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(date));
}

實測某些照片無法找出拍攝日期(ORIGINAL)
但在電腦中是有的

網上查詢也有 https://www.metadata2go.com/

程式 print 出來卻不一致

這邊有一併顯示 Photo Viewer
但這個日期不對
而其他 Directory 與 Tag 也都沒有日期了
因此大概是 API 沒寫好?
總之這個工具對我來說沒用了