How to get date picture created in java

后端 未结 5 1725
青春惊慌失措 2021-02-20 16:26

I would like to extract the date a jpg file was created. Java has the lastModified method for the File object, but appears to provide no support for extracting the created date

  • 2021-02-20 17:15

    I use this metadata library:

    Seems to work pretty well, although bear in mind that not all JPEG images have this information, so it can't be 100% fool-proof.

    If the EXIF metadata doesn't contain the created date, then you'll probably have to make do with Java's lastUpdated - unless you want to resort to Runtime.exec(...) and using system functions to find out (I wouldn't recommend this, though!)

    0 讨论(0)
  • 2021-02-20 17:19

    The information is stored within the image in a format called EXIF or link text. There several libraries out there capable of reading this format, like this one

    0 讨论(0)
  • 2021-02-20 17:23

    You probably need something to access the exif data. Google suggests this library.

    0 讨论(0)
  • 2021-02-20 17:24

    The code example below asks the user for a file path and then outputs the creation date and time:

    public class Main {
        public static void main(final String[] args) {
            try {
                // get runtime environment and execute child process
                Runtime systemShell = Runtime.getRuntime();
                BufferedReader br1=new BufferedReader(new InputStreamReader(;
                System.out.println("Enter filename: ");
                String fname=(String)br1.readLine();
                Process output = systemShell.exec("cmd /c dir /a "+fname);
                 // open reader to get output from process
                BufferedReader br = new BufferedReader (new InputStreamReader(output.getInputStream()));
                String out="";
                String line = null;
                int step=1;
                 while((line = br.readLine()) != null ) 
                     }          // display process output
                out=out.replaceAll(" ","");
                System.out.println("CreationDate: "+out.substring(0,10));
                System.out.println("CreationTime: "+out.substring(10,15));
                catch(StringIndexOutOfBoundsException se)
                    System.out.println("File not found");
              catch (IOException ioe){ System.err.println(ioe); }
              catch (Throwable t) { t.printStackTrace();}
    0 讨论(0)
  • 2021-02-20 17:25

    The date is stored in the EXIF data in the jpeg. There's a java library and a viewer in java that might be helpful.

    0 讨论(0)