Author: tilman
Date: Sat Nov 29 11:36:57 2025
New Revision: 1930101

Log:
PDFBOX-6109: recognise datetime without timezone and improve test coverage

Modified:
   pdfbox/branches/3.0/xmpbox/src/main/java/org/apache/xmpbox/DateConverter.java
   
pdfbox/branches/3.0/xmpbox/src/test/java/org/apache/xmpbox/DateConverterTest.java

Modified: 
pdfbox/branches/3.0/xmpbox/src/main/java/org/apache/xmpbox/DateConverter.java
==============================================================================
--- 
pdfbox/branches/3.0/xmpbox/src/main/java/org/apache/xmpbox/DateConverter.java   
    Sat Nov 29 11:36:52 2025        (r1930100)
+++ 
pdfbox/branches/3.0/xmpbox/src/main/java/org/apache/xmpbox/DateConverter.java   
    Sat Nov 29 11:36:57 2025        (r1930101)
@@ -144,7 +144,7 @@ public final class DateConverter
                 }
 
                 int timeZonePos = 12;
-                if (date.length() - 12 > 5 || (date.length() - 12 == 3 && 
date.endsWith("Z")))
+                if (date.length() == 14 || date.length() - 12 > 5 || 
(date.length() - 12 == 3 && date.endsWith("Z")))
                 {
                     second = Integer.parseInt(date.substring(12, 14));
                     timeZonePos = 14;

Modified: 
pdfbox/branches/3.0/xmpbox/src/test/java/org/apache/xmpbox/DateConverterTest.java
==============================================================================
--- 
pdfbox/branches/3.0/xmpbox/src/test/java/org/apache/xmpbox/DateConverterTest.java
   Sat Nov 29 11:36:52 2025        (r1930100)
+++ 
pdfbox/branches/3.0/xmpbox/src/test/java/org/apache/xmpbox/DateConverterTest.java
   Sat Nov 29 11:36:57 2025        (r1930101)
@@ -59,6 +59,22 @@ class DateConverterTest
         convDate = DateConverter.toCalendar("D:2015-02-02");
         assertEquals(2015, convDate.get(Calendar.YEAR));
 
+        convDate = DateConverter.toCalendar("D:2015-02-03T10:11:12");
+        assertEquals(2015, convDate.get(Calendar.YEAR));
+        assertEquals(1, convDate.get(Calendar.MONTH)); // 0-based
+        assertEquals(3, convDate.get(Calendar.DAY_OF_MONTH));
+        assertEquals(10, convDate.get(Calendar.HOUR));
+        assertEquals(11, convDate.get(Calendar.MINUTE));
+        assertEquals(12, convDate.get(Calendar.SECOND));
+
+        convDate = DateConverter.toCalendar("D:2015-02-03T10:11:12Z");
+        assertEquals(2015, convDate.get(Calendar.YEAR));
+        assertEquals(1, convDate.get(Calendar.MONTH)); // 0-based
+        assertEquals(3, convDate.get(Calendar.DAY_OF_MONTH));
+        assertEquals(10, convDate.get(Calendar.HOUR));
+        assertEquals(11, convDate.get(Calendar.MINUTE));
+        assertEquals(12, convDate.get(Calendar.SECOND));
+
         convDate = 
DateConverter.toCalendar("2025-09-03T15:43:47.989082+00:00");
         assertEquals(989, convDate.get(Calendar.MILLISECOND));
 

Reply via email to