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: 
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
Set to oldest date from Exif meta or file name
==============================================

Step 0 - install exiftool from below
------------------------------------

[Installing ExifTool](https://exiftool.org/install.html#Windows)

 **Step 0.1**
-------------

Save the **[oldest\_datetime\_config](https://github.com/pratyushtewari/exif-scripts/blob/master/oldest_datetime_config)** in the home folder `C:\Users\YOURUSERNAME` or in your home directory `~` or in the same folder where you have installed exiftool. This step is important for the following steps to be successful.

You can find these in a script here but I have found that running the commands in the pic folder I mentioned in the options below are much much faster than running these through python script exif-scripts/setToOldestDate.py For faster processing you can run these commands directly in powershell from the pic folder you are planning.

If you are running WSL then run these commands from poweshell and not WSL are the file system read write from the windows virtualization will blow up your ram and will slow down the process to a halt.

 Note that these scripts are recursive and will affect all the subfolders are well.

Well … now — pick your options:

### Option 1 - In case you need to pick the date from the file name.

This is pretty flexible and fuzzy parser from exiftool but if you want it to be absolutely sure then you can remane the file to include yyyymmdd\_hhmmss and remove all the other number before it (after is OK).

```
exiftool "-FileModifyDate<filename" −overwrite_original -S -m -progress -ee -q -q ./

```

### Option 2 - set all the dates to the oldest date

```
exiftool -overwrite_original "-FileModifyDate<OldestDateTime" "-ModifyDate<OldestDateTime" "-DateTimeOriginal<OldestDateTime" "-CreateDate<OldestDateTime" "-GPSDateTime<OldestDateTime" -S -m -progress -ee -q -q ./

```

### Option 3 - set the name of the file in PXL\_yyyymmdd\_hhmmss-[number-if-conflict].extension

```
exiftool "-filename<OldestDateTime" -d PXL_%Y%m%d_%H%M%S%%-c.%%e -S -m -ee -progress -q -q ./

```

to push all the files in the current directory use

```
adb push -a . /sdcard/DCIM/Camera/

```

-a is to preserve the attributes.

**⌛ Refresh Android Media Store**
---------------------------------

As a last step, you need to refresh the android media store database to let google photos know which new files to backup. Currently it does not always detect automatically so why wait for that. Install [Refresh MediaStore](https://play.google.com/store/apps/details?id=com.kotorimura.refreshmediastore) and run it after the adb push is complete from the phone. Then you can open Google Photos and see that the backup is starting.