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));