Photo Metadata Timestamp Fixer
Preview and adjust the EXIF capture date/time across a batch of photos by shifting all timestamps by a fixed offset, useful for fixing a camera clock that was set wrong.
🔒 This tool runs entirely in your browser. Your files are never uploaded to a server.
JPEG photos only. Everything runs in your browser — files are never uploaded. The rows below are an example until you add your own photos.
Use negative numbers to move timestamps earlier. The shift is applied to wall-clock time exactly — no daylight-saving jumps.
| File | Original date taken | New date taken | Status |
|---|
Corrected photos are re-saved with the new EXIF dates written in place — the image pixels are copied byte-for-byte, so there is no quality loss. Multiple photos download as a ZIP.
How the Photo Metadata Timestamp Fixer works
- Select a batch of JPEG photos — the tool parses each file's EXIF block and reads its real DateTimeOriginal capture date.
- Choose an adjustment: Shift by offset (days / hours / minutes / seconds, positive or negative) to move every timestamp by the same amount, or Set exact date/time to stamp one specific time onto all of them.
- Pick which EXIF fields to write — DateTimeOriginal, DateTimeDigitized and the IFD0 DateTime are all on by default.
- Review the before/after table; any photo without a matching EXIF date is flagged as skipped.
- Download the corrected photos — a single JPEG, or a ZIP when you loaded several — with the new dates written straight into the EXIF metadata and the image data untouched.
- Optionally export a JSON manifest of every original and corrected timestamp for your records or a downstream script.
FAQ
Why would a photo's timestamp be wrong?
Camera clocks drift, get reset when the battery dies, or are left on the wrong timezone after travel — the usual fix is shifting every photo from that shoot by the same fixed offset once you know the correct time.
Does this tool edit the actual photo files?
Yes. It reads the real EXIF capture date from each JPEG, applies your adjustment, and re-saves the file with the new date written directly into the EXIF metadata. The image pixels are copied byte-for-byte, so there is no re-compression or quality loss.
Which EXIF fields does it change?
DateTimeOriginal (when the photo was taken), DateTimeDigitized (when it was digitised), and DateTime (the IFD0 file-header date). Each is a toggle, and by default all three are kept in sync so Apple Photos, Google Photos and Lightroom all show the corrected date after re-import.
Can I shift by a negative offset?
Yes — enter negative values for days, hours, minutes or seconds to move timestamps earlier, which is common when a camera clock was set ahead of the real time. The shift is applied to the stored wall-clock time exactly, with no daylight-saving jump.
What about photos with no EXIF date?
EXIF stores dates as a fixed-width text field, so this tool overwrites an existing capture date in place. Screenshots, scans and heavily-edited images that never had a DateTimeOriginal are listed as "skipped" rather than having a date invented for them.
Do my photos get uploaded?
No. All parsing and EXIF rewriting happens in your browser with the File API — nothing is sent to a server, and the tool works offline once the page has loaded.
How we compare
| Feature | Online Tool Store | TimestampCamera date editor | Photo Date Changer | AI Metadata Cleaner |
|---|---|---|---|---|
| Reads real EXIF DateTimeOriginal (not file date) | ✓ | ✓ | ✓ | ✓ |
| Writes new EXIF dates back into the JPEG, no quality loss | ✓ | ✓ | ✓ | ✓ |
| Both shift-by-offset and set-exact-date modes | ✓ | ✓ | ✓ | ✓ |
| Per-field control over which EXIF dates are written | ✓ | ✓ | ✗ | ✗ |
| Second-level offset precision | ✓ | ✗ | ✗ | ✓ |
| Batch ZIP download | ✓ | ✓ | ✓ | ✓ |
| JSON timestamp manifest export | ✓ | ✗ | ✗ | ✗ |
| 100% in-browser, no upload, no sign-up | ✓ | ✓ | ✓ | ✓ |
The timestamp fix itself is now complete in the browser — download the corrected JPEGs directly. The JSON manifest is there when you also need an audit trail or want to drive a separate archival script.