On non-Microsoft filesystems, "Date created" in file systems has always meant "date the file was added to the file system it is sitting on", so it is set to the time the file is copied, and is not an absolute date that never changes. On Microsoft file systems, it depends if the file is copied to the file system (from the same or another FS) (new time stamp) or moved (also from the same or another FS) (time stamp is kept)(*). So that explain Ctrl-C/Ctrl-V which is a copy, and Ctrl-X/Ctrl-V which is a move. But not all Microsoft FS support it.
If you want to get the "shooting date", then it is part of the image EXIF metadata data:
DateTimeOriginal
(0x9003)
DateTimeDigitized
(0x9004)
(usually identical on picture from cameras)
"Date of last access" is of little value/low trust because it requires writing back to the file system. So 1) it's not good for performance, 2) it's not good for media wear (SSD...) and 3) it may even bee not possible (read-only file system, because of media type, or access privileges). Modern filesystem have developed various strategies to mitigate this, but most of these rely on the idea that access time isn't critical (for instance, on the NTFS file system, it is accurate to a day (*), and may not be updated for over an hour). In addition, many things change it, even when not needed (thumbnails, etc...).
So you are left with the modification date(**), but this is taken care of by proper use of file utilities. Copying/moving a file to another drive shouldn't change this. EXIF data also has a field for this, DateTime
(reported as ModifyDate
by exiftool
)(0x0132)
You can get these dates with various utilities, the exiftool
command line utility being quite popular:
> exiftool -dateTimeOriginal -modifydate SomePhoto.jpg
Date/Time Original : 2023:03:06 16:00:12
Modify Date : 2023:03:08 23:41:34
Exiftool has extensive formatting abilities, so you can generate a line with all the info you need for each file, see examples here. For instance to create a CSV for the files shoot date and last modification date (Unix syntax, quoting is likely different on Windows):
exiftool -p '"$filename";"$dateTimeOriginal";"$modifydate"' *.JPG > photos.csv
yields:
"IMG_9737.JPG";"2023:03:06 16:00:12";"2023:03:06 16:00:12"
"IMG_9739.JPG";"2023:03:07 13:59:34";"2023:03:07 13:59:34"
"IMG_9740.JPG";"2023:03:07 13:59:50";"2023:03:07 13:59:50"
"IMG_9741.JPG";"2023:03:07 13:59:50";"2023:03:07 13:59:50"
"IMG_9743.JPG";"2023:03:07 14:00:07";"2023:03:07 14:00:07"
"Edited1.JPG";"2023:03:06 16:00:12";"2023:03:08 23:41:34"
"Edited2.JPG";"2023:03:06 16:00:12";"2023:03:07 14:08:15"
Exiftool also supports video (at least it can show the same information from .MOV out of my Canon camera).
(*) Some good background information here and here
(**) This date misses an important information: it is not changed if a file is renamed, so a backup may overlook the change. Unix file systems (OSX, Linux) also have a "change date" to support this.