package com.deepnighttwo; import com.drew.imaging.jpeg.JpegMetadataReader; import com.drew.metadata.Directory; import com.drew.metadata.Metadata; import com.drew.metadata.Tag; import java.io.File; import java.text.SimpleDateFormat; import java.util.Collection; import java.util.Date; /** * User: Mark Zang * Date: 2016/11/7 * Time: 22:16 */ public class ExifUtils { static SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy:MM:dd HH:mm:ss"); public static void main(String[] args) { Date date = getDateFromFile(new File("test.JPG")); System.out.println("aaaaa:" + date); } public static Date getDateFromFile(File file) { Date dateModified = new Date(file.lastModified()); Date dateExif = null; Date dateOriginal = null; Date dateDigitized = null; try { Metadata metadata = JpegMetadataReader.readMetadata(file); Iterable<Directory> exif = metadata.getDirectories(); for (Directory directory : exif) { Collection<Tag> tags = directory.getTags(); for (Tag tag : tags) { if ("Date/Time".equals(tag.getTagName())) { dateExif = sdfDate.parse(tag.getDescription()); } else if ("Date/Time Original".equals(tag.getTagName())) { dateOriginal = sdfDate.parse(tag.getDescription()); } else if ("Date/Time Digitized".equals(tag.getTagName())) { dateDigitized = sdfDate.parse(tag.getDescription()); } if (tag.getDescription() != null && tag.getDescription().contains("201")) { System.out.println(tag.getTagName() + ":" + tag.getDescription()); } } } } catch (Exception e) { e.printStackTrace(); System.out.println("No EXIF found for " + file + ". Using lastModifyTime."); } if (dateOriginal != null) { return dateOriginal; } if (dateExif != null) { return dateExif; } if (dateDigitized != null) { return dateDigitized; } return dateModified; } }