<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.kde.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugs.kde.org/"
          
          maintainer="sysadmin@kde.org"
>

    <bug>
          <bug_id>518687</bug_id>
          
          <creation_ts>2026-04-08 09:29:13 +0000</creation_ts>
          <short_desc>Time Adjust &quot;EXIF: original&quot; uses old XMP CreateDate/DateCreated instead of Xmp.exif.DateTimeOriginal</short_desc>
          <delta_ts>2026-04-09 02:57:47 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>2</classification_id>
          <classification>Applications</classification>
          <product>digikam</product>
          <component>Plugin-Generic-TimeAdjust</component>
          <version>9.0.0</version>
          <rep_platform>Arch Linux</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>NOR</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter>wsyxbcl</reporter>
          <assigned_to name="Digikam Developers">digikam-bugs-null</assigned_to>
          <cc>caulier.gilles</cc>
    
    <cc>metzpinguin</cc>
          
          <cf_commitlink>https://invent.kde.org/graphics/digikam/-/commit/2d386966e921b2edbfb0173fa6ea6e9fe09a7eec</cf_commitlink>
          <cf_versionfixedin>9.1.0</cf_versionfixedin>
          <cf_sentryurl></cf_sentryurl>
          <votes>0</votes>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2508799</commentid>
    <comment_count>0</comment_count>
    <who name="">wsyxbcl</who>
    <bug_when>2026-04-08 09:29:13 +0000</bug_when>
    <thetext>When &quot;Use XMP sidecar for reading&quot; is enabled, digiKam resolves &quot;EXIF: original&quot; to an older creation-date timeline instead of the actual original-date field.

I can reproduce this with a JPEG + XMP sidecar pair where:
  - JPEG Exif.Photo.DateTimeOriginal = 2026:04:17 09:54:08
  - XMP sidecar Xmp.exif.DateTimeOriginal = 2026-04-17T09:54:08
  - XMP sidecar Xmp.xmp.CreateDate = 2023-08-31T14:46:16
  - XMP sidecar Xmp.photoshop.DateCreated = 2023-08-31T14:46:16

With that setup, digiKam still shows the old 2023 date in Time Adjust when &quot;Timestamp Used&quot; is set to &quot;EXIF: original&quot;.

Steps to reproduce:
  1. Open Item &gt; Adjust Time &amp; Date.
  2. In &quot;Timestamp Used&quot;, select &quot;EXIF: original&quot;.

Observed result:
  The preview/&quot;Timestamp Used&quot; value is the old date (from the XMP creation-date family), not the new original-date value.

Expected result:
  &quot;EXIF: original&quot; should resolve to Exif.Photo.DateTimeOriginal.
  When sidecar reading is enabled, the equivalent XMP field should be Xmp.exif.DateTimeOriginal.
  It should not silently fall back to Xmp.xmp.CreateDate / Xmp.photoshop.DateCreated.

I also tried to make this clear by calling digiKam&apos;s DMetadata API directly.

For the same file pair, with sidecar reading enabled, DMetadata returns:
  - Exif.Photo.DateTimeOriginal = 2023:08:31 14:46:16
  - Xmp.exif.DateTimeOriginal = 2026:04:17 09:54:08
  - Xmp.xmp.CreateDate = 2023-08-31T14:46:16
  - itemDateTime = 2023-08-31T14:46:16Z

With sidecar reading disabled, DMetadata returns:
  - Exif.Photo.DateTimeOriginal = 2026:04:17 09:54:08

Software/OS versions:
  - digiKam 9.0.0
  - exiv2 0.28.8
  - ExifTool 13.50
  - Qt 6.11.0
  - Arch Linux rolling</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2508812</commentid>
    <comment_count>1</comment_count>
    <who name="Maik Qualmann">metzpinguin</who>
    <bug_when>2026-04-08 10:38:15 +0000</bug_when>
    <thetext>In principle, the behavior is correct. When reading sidecar metadata, XMP metadata must override the Exif/IPTC metadata; otherwise, it cannot be modified. Furthermore, Exiv2 includes this conversion table: https://exiv2.org/conversion.html

You can see how your date is generated as a result. However, we can temporarily disable the reading of sidecar metadata in the Time Adjust Tool, since the user explicitly requests Exif:original. This also means that if Exif:original is not present, we will get an invalid date, i.e., for images without metadata whose data is only present in XMP sidecar metadata.

Maik</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2508977</commentid>
    <comment_count>2</comment_count>
    <who name="Maik Qualmann">metzpinguin</who>
    <bug_when>2026-04-08 19:14:14 +0000</bug_when>
    <thetext>Git commit 2d386966e921b2edbfb0173fa6ea6e9fe09a7eec by Maik Qualmann.
Committed on 08/04/2026 at 19:13.
Pushed by mqualmann into branch &apos;master&apos;.

read Exif/IPTC date metadata without sidecar in the Time Adjust Tool
FIXED-IN: 9.1.0

M  +1    -1    NEWS
M  +22   -17   core/dplugins/bqm/metadata/timeadjust/timeadjust.cpp
M  +10   -6    core/dplugins/generic/metadata/timeadjust/timeadjustthread.cpp

https://invent.kde.org/graphics/digikam/-/commit/2d386966e921b2edbfb0173fa6ea6e9fe09a7eec</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2509006</commentid>
    <comment_count>3</comment_count>
    <who name="">wsyxbcl</who>
    <bug_when>2026-04-09 02:57:47 +0000</bug_when>
    <thetext>(In reply to Maik Qualmann from comment #1)
&gt; In principle, the behavior is correct. When reading sidecar metadata, XMP
&gt; metadata must override the Exif/IPTC metadata; otherwise, it cannot be
&gt; modified. Furthermore, Exiv2 includes this conversion table:
&gt; https://exiv2.org/conversion.html
&gt; 
&gt; You can see how your date is generated as a result. However, we can
&gt; temporarily disable the reading of sidecar metadata in the Time Adjust Tool,
&gt; since the user explicitly requests Exif:original. This also means that if
&gt; Exif:original is not present, we will get an invalid date, i.e., for images
&gt; without metadata whose data is only present in XMP sidecar metadata.
&gt; 
&gt; Maik

Thank you Maik, for referring the conversion table. I guess what I am seeing here is an edge case caused by incomplete editing.

Thanks again for the fix.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>