Question: I have many photos named with a date format but the EXIF dates don't match.

e.g. `2016-12-16_20-20-29.jpg`

Running them through `EXIFTOOL` I can almost overwrite the dates but it doesn't match the exact date format.

```
exiftool "-datetimeoriginal<filename" ./

```

This sets the date to the correct calendar day but ignores the time.

```
exiftool "-datetimeoriginal<filename" -d "%Y-%M-%D_%H-%M-%S.%%e" ./

```

I believe the `-d` parameter sets a data format but this returns as error of `Warning: Error parsing time in ExifIFD:DateTimeOriginal (PrintConvInv)`

Is this the correct method to use?

Answer: 
Your first command should work correctly. From [Exiftool FAQ 5](https://exiftool.org/faq.html#Q5):  

"ExifTool is very flexible about the actual format of input date/time values when writing, and will attempt to reformat any values into the standard format unless the -n option is used. Any separators may be used (or in fact, none at all). The first 4 consecutive digits found in the value are interpreted as the year, then next 2 digits are the month, and so on. [The year must be 4 digits. Other fields are expected to be 2 digits, but a single digit is allowed if the subsequent character is a non-digit.] "

The example given following that paragraph is almost the same as your first command.

The `-d` option isn't needed for this type of operation.

Example output 

```
C:\>exiftool -datetimeoriginal "X:\!temp\2016-12-16_20-20-29.jpg"

C:\>exiftool "-datetimeoriginal<filename" "X:\!temp\2016-12-16_20-20-29.jpg"
    1 image files updated

C:\>exiftool -datetimeoriginal "X:\!temp\2016-12-16_20-20-29.jpg"
Date/Time Original              : 2016:12:16 20:20:29

```
To follow up on StarGeek's good answer.

It turns out I had corrupted my exif data and that is why the command didn't succeed.

To fix it I first cleared the data

```
exiftool -all= −overwrite_original ./

```

then I was able to run the command again to set the date from the filename. An added bonus was that I discovered the property `-alldates` which updated every date within the meta data excluding the file write / mod dates.

```
exiftool "-alldates<filename" −overwrite_original ./

```

.n.b `−overwrite_original` prevents the creation of backup files