I find it frustrating to assemble photos from different devices - my wife's iPhone, my Windows Phone, our Sony Cybershot, my parents' Canon IXUS. That's because they all use different naming conventions for their photos and videos:

 

Even the windows explorer "Details" view doesn't help, because they all have different conventions on how to store "date taken" in metadata.

So in my first foray into codeplex, I wrote a small VB app to go through those photos and videos, walk the raw file format of the EXIF and MP4 headers, and make sense of the datestamps that it finds in the metadata:

https://fixcameradate.codeplex.com/

 

There were some interesting bugs along the way! Sony Cybershot seems to store local time rather than UTC time in its MP4 metadata, though this is probably by-design since the camera UI doesn't even let you specify your current timezone. Android phones seem to store UTC time since 1st Jan 1970, rather than 1st Jan 1904 as required by the MP4 spec. Windows phones don't store time at in metadata for their videos! On iPhone and Canon it worked best: I reverse-engineered (i.e. guessed by looking at the binaries) where they store the local time that a video was taken.