Windows Shows Dates for Date Create and Date Modified, but not ExifTool?

Started by rewallac, December 19, 2017, 03:49:03 PM

Previous topic - Next topic

rewallac

I have a bunch of photos that I am trying to update the Date Taken (datetimeoriginal). When viewing the files in Windows explorer, both Date Created and Date Modified are listed, and I want to use those values, but when I display the current values for all the date tags (DateTimeOriginal, CreateDate, ModifyDate, FileCreateDate, FileModifyDate) they are all blank. What's going on here? Is there another tag I am missing?

Phil Harvey

...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

rewallac

Using ExifToolGUI, in the filelist view, I created a user defined view displaying those tags. I created this view after getting the following error when trying to use the command exiftool "-datetimeoriginal<CreateDate":

======== exiftool
======== ./838173441562746467.jpg
Nothing changed in ./838173441562746467.jpg
    0 image files updated
    1 image files unchanged
    1 files weren't updated due to errors
Warning: Error opening file - exiftool
Error: File not found - exiftool
Warning: No writable tags set from ./838173441562746467.jpg
<-END-

Phil Harvey

Quote from: rewallac on December 20, 2017, 08:41:07 AM
Warning: Error opening file - exiftool

You shouldn't put "exiftool" in the exiftool-direct command in the GUI.

QuoteWarning: No writable tags set from ./838173441562746467.jpg

This will happen if the file didn't contain a CreateDate tag.  I'm guessing that you may want to use FileCreateDate instead.

- Phil

P.S.  I'm moving this to the ExifToolGUI section of this forum.
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

rewallac

So this has resolved the issue that I was having. Interestingly, I was able to use FileCreateDate, but when displaying the tag in custom view in ExifToolGUI it still shows as blank.

Thanks!

rewallac

I am still confused why Windows Explorer recognizes the EXIF data differently. Can someone help explain what is happening in the attached photos??

Phil Harvey

There are filesystem date/time tags and metadata date/time tags with similar names.   ExifCapture shows the metadata ones, but explorer probably shows the filesystem ones.

Use this command in ExifTool to see them all, and where they are stored:

exiftool -a -G0:1 -time:all FILE

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

StarGeek

Windows doesn't recognize EXIF data in PNG images.  The data shown in your Explorer images are OS timestamps, which exiftool lists as FileModifyDate and FileCreateDate, which are strangely blank in your ExifToolGui image.

Windows will fill the "Date Taken" property with the value of the PNG:CreationTime.  That was the only data I found that Windows read in PNG files, but that was under Windows 8 and a couple of years ago (see this thread)

Edit: I just double checked and Windows 10 doesn't read any XMP, EXIF, and IPTC data in a PNG image, so no changes in the past couple years.  I also realized that I never checked to see if it would read any of the PNG TextualData tags but don't expect it will as the Details tab under Windows Properties doesn't show a space for any more data.  A quick check by adding four tags (PNG:Artist, PNG:Author, PNG:Comment, and PNG:Copyright) showed nothing in Windows Properties.
* Did you read FAQ #3 and use the command listed there?
* Please use the Code button for exiftool code/output.
 
* Please include your OS, Exiftool version, and type of file you're processing (MP4, JPG, etc).

rewallac

Thanks StarGeek, I was able to get Windows to recognize the correct date by setting the PNG:CreationTime. Still a little confused why FileModifyDate and FileCreateDate, are strangely blank in ExifToolGui. Your explanation at least confirmed I wasn't crazy and things are certainly A LOT more complex than I realized.

rewallac

Having this same issue again. I modified some photos, but seeing strange discrepancies between EXIF and Windows Explorer for the date properties. I used these commands (in this order) for the files:

"-PNG:CreationTime<${filename;$_=substr($_,0,11)} 13:00:00"
"-AllDates<PNG:CreationTime"
"-FileCreateDate<PNG:CreationTime"
"-FileModifyDate<PNG:CreationTime"

Does anyone have any idea why Windows still isn't showing the Date Taken property? Or why EXIF isn't showing anything for FileCreateDate or FileModifyDate??


StarGeek

Quote from: rewallac on August 03, 2018, 04:50:04 PM
Does anyone have any idea why Windows still isn't showing the Date Taken property?

It did at the time of my last post here.  It no longer does.  The ability to read some PNG data appears to have been removed.

Edit: Strike that, it doesn't read PNG:CreationTime as written by exiftool any longer.  You can set it through Windows Properties->Details and it will show up.

Phil, can you take a look and see what the difference might be.  I've attached two small pngs with the creation time set by windows and by exiftool.

* Did you read FAQ #3 and use the command listed there?
* Please use the Code button for exiftool code/output.
 
* Please include your OS, Exiftool version, and type of file you're processing (MP4, JPG, etc).

Phil Harvey

Windows is apparently stopping the metadata scan at the PNG IDAT chunk.  I have seen this before.  This is why the PNGEarlyXMP option exists.  Apparently I need to expand this to also cover native PNG metadata. :(

Very unfortunately, metadata may exist after the IDAT chunk according to the specification, and due to this since ExifTool does a single-pass when writing it must wait until it has processed the entire file before writing out any new metadata.

I'll look into expanding the PNGEarlyXMP to also include other metadata types.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).


Phil Harvey

No updates yet.  Thanks for the reminder, but this will have to wait until after I get back from vacation in a couple of weeks.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

Phil Harvey

I can't reproduce this because my version of Windows 10 doesn't show PNG metadata (or at least I can't figure out how to do it -- showing the file "Properties" doesn't give this information).  Can you tell me how to get Windows to show this metadata?

I looked into adding the ability to write PNG metadata before iDAT as with XMP and the PNGEarlyXMP option, but this will be a lot of work and may be a while before I am able to implement this.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).