Neatbo.

Correct photo capture clocks

Apply one explicit clock correction to existing JPEG Exif dates; keep every other source byte and download the full change report.

Browser-local processingInputOriginal baseline JPEG with existing Exif dates + explicit clock correctionOutputByte-preserving corrected JPEGs + complete JSON/CSV ZIPUp to 10 MiB per file · File limit: 500
  1. 1Add input
  2. 2Adjust settings
  3. 3Get your result

Tool input and files are processed in this browser without being uploaded.

Your input

Inputs are kept temporarily in this tab when switching tools. Refreshing or closing clears them; large results may need to be regenerated.

⌘ / Ctrl + Enter to run

or drag and drop them here

Files stay on this device. Your originals stay unchanged.

.jpg · .jpeg

Up to 10 MiB per file · File limit: 500

    Options

    Complete the required options first. You can keep the defaults for the rest.

    Positive adds time; negative subtracts time. Whole seconds only, from −315537897599 to +315537897599; every corrected year must remain 0001–9999.

    Existing date fields to change

    Select at least one. Every photo must contain every selected field; otherwise the entire queue refuses.

    Preparing the tool…

    Before you start

    A camera clock was wrong across a photo batch. Add exact seconds, or give one recorded and actual wall-clock pair, then choose the existing date fields to change. Keep originals and compare every corrected copy with the complete report.

    How to use this tool

    1. Choose all supported original JPEG photos with the same camera-clock error.
    2. Enter exact seconds or one recorded/actual anchor pair; select existing date fields.
    3. Run, compare before/after preview rows and the batch summary, then download the complete ZIP.
    4. Use clock-report.json and corrected copies to review every source, field, byte span and hash; check the receiving program’s date priority.

    Supported inputs and limits

    1–500 original JPEG Files, 10 MiB each and 100 MiB total; filenames up to 512 UTF-8 bytes. The picker may impose a shorter basename limit.

    Baseline 8-bit SOF0, one interleaved scan and terminal EOI; exactly one classic little- or big-endian Exif TIFF. Progressive JPEG, BigTIFF, multiple Exif sections, MPF, JUMBF, trailers and unsupported structures refuse the entire queue.

    Per photo: 4096 markers, 5 supported IFD roles, 512 entries per IFD and 1500 entries; queue total 100000 entries. Selected date values must be existing 20-byte ASCII fields with valid years 0001–9999.

    Exact integer seconds and recorded/actual anchors are mutually exclusive. Anchors use YYYY:MM:DD HH:mm:ss and change every selected existing field by the same wall-clock offset. No timezone inference or missing-tag creation.

    Only DateTime, DateTimeOriginal and DateTimeDigitized can be selected. XMP dates, OffsetTime, SubSec, GPS, compressed pixels and every other byte stay unchanged. File-system dates are not edited.

    The screen previews at most 20 changed fields and copies a bounded batch summary. The ZIP contains every corrected JPEG, complete clock-report.json, formula-safe clock-changes.csv and copy.txt. Source names, indices, hashes and selected/unselected dates remain complete.

    Malformed, unsupported, missing-field, over-budget, cancelled or timed-out input yields no partial package. The whole operation has a 10-second deadline, including local loading and file reads; retry the same selected originals after cancellation.

    Report and CSV each have an 8 MiB guard; complete binary plus text and binary plus metadata each have a 128 MiB guard. Processing stays in this browser, without uploading names or contents. Source pixels are not decoded or re-encoded by this tool.

    Worked example

    Example input

    One supported original photo with DateTimeOriginal = 2024:02:29 23:59:59.
    Example options
    Add 1 second; select DateTimeOriginal.

    Example output

    DateTimeOriginal becomes 2024:03:01 00:00:00; all other bytes remain unchanged.

    When something does not work

    Keep the originals. If any selected field is absent, choose fields present in every source or prepare a supported source first. Review offset signs and calendar years. Cancelled or timed-out runs leave no partial ZIP; rerun the same selected files.

    Frequently asked questions

    Does this make XMP and file dates agree?

    Only the explicitly selected existing Exif fields change. XMP, offset/subsecond tags and filesystem dates stay unchanged; a receiving program may prefer one of those dates.

    Can anchors discover my timezone or create a missing date?

    No. You supply both wall-clock values; their difference is applied uniformly. Missing selected tags refuse the entire queue.

    Related tools