What exactly is this error about the CreateDate format telling me?

Started by remarkableearth, December 20, 2017, 11:59:01 AM

Previous topic - Next topic

remarkableearth

I'm writing values to a set of tags, some of which are custom and some not, using something similar to exiftool -r -customtag1=value1 -createdate=- -customtag2=value2 /dir/subdir . to which I receive the message Warning: Invalid date/time (use YYYY:mm:dd HH:MM:SS[.ss][+/-HH:MM|Z]) in ExifIFD:CreateDate (PrintConvInv)
    2 directories scanned
   20 image files updated


I saw that Phil had responded to another similar question with
Quote from: Phil Harvey on May 01, 2014, 08:53:09 AM
Your commands aren't working because you want to copy the value from another tag (with "<") instead of assign a value ("=").

Also, you should take advantage of the Composite GPSDateTime tag for this (that is what it is for):

exiftool -if "not defined $DateTimeOriginal" "-datetimeoriginal<gpsdatetime" ...

And setting FileModifyDate won't work the way you are doing it because DateTimeOriginal doesn't exist.  Instead, you must set this the same way that you did with DateTimeOriginal.

- Phil

Using this advice I tried exiftool -if "not defined $CreateDate" "-createdate<gpsdatetime" /dir/subdir . and got a lengthy response with a few dozen warnings similar to Warning: No writable tags set from /dir/subdir/image1.JPG
Warning: No writable tags set from /dir/subdir/image2.JPG
Warning: [minor] Possibly incorrect maker notes offsets (fix by 36?) - /dir/subdir/image3.jpg
Warning: [minor] Suspicious MakerNotes offset for tag 0x9001 - /dir/subdir/image3.jpg
Warning: No writable tags set from /dir/subdir/image3.jpg


So I don't think my interpretation of Phil's suggestion worked well, however, the CreateDate value is written accurately; I checked it against that of the original file.

So I just need a little tutoring on what the original error message is about.

StarGeek

You tried to set a timestamp (CreateDate) to the value of a dash -.  The dash is not a date or a time, which is why you get a response of Invalid date/time.
* 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).

remarkableearth

I used a dash as a placeholder value because my next step replaces the dash with the EXIF -CreateDate data and outputs to a csv, where I will be adjusting values on a record-by-record basis in my research. Is there a different way to write a placeholder for the -CreateDate tag such that I can then replace it with the EXIF data?

Phil Harvey

You could do this if you really want to write a dash: -createdate#=-

The "#" bypasses the date/time formatting.

- 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 ($).

remarkableearth

Phil, when I do as you suggest the value for -CreateDate becomes a dash and I lose the datestamp data. Is there a way you can suggest that doesn't overwrite the original datestamp data but enables me to gather it along with my custom tags & values for csv output?

The workflow I've been using for several weeks has been working just fine (gather my custom tags, write their values and gather some of the file's tags and values (as described in the first line of my original post on this conversation) and output all of them to a csv), but has the annoying but seemingly inconsequential error message. Is it inconsequential?

Phil Harvey

I thought you wanted to set CreateDate to "-" for some reason.  If you don't want to do this, then remove the -createdate=- from your command and the warning will go away.

- 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 ($).

remarkableearth

Phil, you solved it. I mistakenly thought I had to include the -createdate=- tag in my writing of tags when I only needed to read it. Thank you. Always a big help.

Phil Harvey

I'm interested to know why you thought that CreateDate would be written when you were only assigning values to CustomTag1 and CustomTag2.  And if you thought CreateDate would be written, why didn't you think that any of the other 10000 or so available tags wasn't being written as well?  And finally, why you thought that -createdate=- would stop it from being written?

If some documentation or example was misleading to you, I should fix it.

- 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 ($).

remarkableearth

I don't think my misuse of exiftool commands arose from unclear documentation but rather from misunderstanding of the rules of individual commands to the broader context, as you suggest in your questions. Still learning.