https://bugs.kde.org/show_bug.cgi?id=517889

            Bug ID: 517889
           Summary: XMP sidecar CreateDate written without timezone
                    offset, causing apps such as Immich to assume UTC and
                    display incorrect times
    Classification: Applications
           Product: digikam
      Version First 9.0.0
       Reported In:
          Platform: Microsoft Windows
                OS: Microsoft Windows
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: Metadata-Date
          Assignee: [email protected]
          Reporter: [email protected]
  Target Milestone: ---

Created attachment 190844
  --> https://bugs.kde.org/attachment.cgi?id=190844&action=edit
Fill XMP file for example

SUMMARY
XMP sidecar CreateDate written without timezone offset, causing apps such as
Immich to assume UTC and display incorrect times

DESCRIPTION
When digiKam writes date metadata to XMP sidecar files, date fields such as
xmp:CreateDate are written without a timezone offset. For example, a photo
taken at 3:00pm AEST (UTC+10:00) will be written as:
2026-03-20T15:00:00
rather than the correct:
2026-03-20T15:00:00+10:00
Any application that reads only the XMP sidecar (rather than the embedded EXIF
data inside the image file) has no timezone context and will typically assume
the naive timestamp represents UTC. Immich is a prominent example of such an
application — when it ingests XMP sidecar files, it reads the date value as-is
and treats it as UTC, causing photos to appear as if they were taken 10 hours
earlier (for a UTC+10 user). This results in photos being sorted and displayed
at the wrong time, and potentially on the wrong date.  Where the is a mix of
photos with no sidecar and with sidecar, some will show the correct date/time
and some the incorrect date/time.
The XMP specification fully supports ISO 8601 date/time values with timezone
offsets. The EXIF data embedded in the image itself typically does carry the
correct offset (via EXIF:OffsetTimeOriginal), but this information is not being
propagated into the XMP sidecar when digiKam writes it.
The fix would be to include the UTC offset from the source EXIF data when
writing date fields to XMP sidecars.

STEPS TO REPRODUCE
1. Import an image taken in a non-UTC timezone where the EXIF data contains a
timezone offset (e.g. EXIF:OffsetTimeOriginal = +10:00)
2. Configure digiKam to write metadata to XMP sidecar files
3. After digiKam writes the sidecar, open the .xmp file in a text editor
4. Inspect the xmp:CreateDate (and related date) fields

OBSERVED RESULT
Date fields are written without a timezone offset, e.g.:
2026-03-20T15:00:00

Any application that reads only the XMP sidecar and assumes naive timestamps
are UTC will display the time incorrectly — for example, Immich will show the
photo as having been taken at 05:00am UTC rather than 03:00pm local time.

EXPECTED RESULT
Date fields in the XMP sidecar include the UTC offset sourced from EXIF, e.g.:
2026-03-20T15:00:00+10:00

SOFTWARE/OS VERSIONS
Windows: 11 25H2 Build 26200.8037
Digikam 9.0.0

ADDITIONAL INFORMATION

Example EXIF data from a Nikon NEF:
exiftool -OffsetTimeOriginal -OffsetTime -OffsetTimeDigitized -DateTimeOriginal
-CreateDate -ModifyDate 20260308_112047.NEF
Offset Time Original            : +11:00
Offset Time                     : +11:00
Offset Time Digitized           : +11:00
Date/Time Original              : 2026:03:08 11:20:47
Create Date                     : 2026:03:08 11:20:47
Modify Date                     : 2026:03:08 11:20:47

Example metadata from the corresponding xmp file written by Digikam
   xmp:ModifyDate="2026-03-08T11:20:47.04"
   xmp:CreateDate="2026-03-08T11:20:47.04"
   photoshop:DateCreated="2026-03-08T11:20:47.04">

RELATED BUGS
Bug 485836 — Feature request to edit timezone offset fields in the Time & Date
Editor
Bug 495506 — Preserve timezone offset timestamp in metadata
Bug 510261 — Video dates incorrect because timezone is not considered
(developer Maik Qualmann acknowledged timezone offset support needs to be
added)

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to