diff --git a/pdf-umbenenner-adapter-out/src/main/java/de/gecheckt/pdf/umbenenner/adapter/out/sqlite/SqliteDocumentRecordRepositoryAdapter.java b/pdf-umbenenner-adapter-out/src/main/java/de/gecheckt/pdf/umbenenner/adapter/out/sqlite/SqliteDocumentRecordRepositoryAdapter.java
index f5cbb90..9789247 100644
--- a/pdf-umbenenner-adapter-out/src/main/java/de/gecheckt/pdf/umbenenner/adapter/out/sqlite/SqliteDocumentRecordRepositoryAdapter.java
+++ b/pdf-umbenenner-adapter-out/src/main/java/de/gecheckt/pdf/umbenenner/adapter/out/sqlite/SqliteDocumentRecordRepositoryAdapter.java
@@ -6,6 +6,9 @@ import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.time.Instant;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
import java.util.Objects;
import org.apache.logging.log4j.LogManager;
@@ -286,13 +289,37 @@ public class SqliteDocumentRecordRepositoryAdapter implements DocumentRecordRepo
}
/**
- * Converts a string representation back to an Instant.
+ * Konvertiert eine String-Darstellung zurück zu einem Instant.
+ *
+ * Unterstützt zwei Datumsformate für Rückwärtskompatibilität:
+ *
+ * - ISO-8601 (neu): "2026-04-27T11:32:25Z"
+ * - Legacy-Format (älter): "2026-04-27 11:32:25" (wird als UTC interpretiert)
+ *
*
- * @param stringValue the ISO-8601 string representation, may be null
- * @return the parsed Instant, or null if stringValue is null or blank
+ * @param stringValue die String-Darstellung des Datums, kann null sein
+ * @return das geparste Instant, oder null wenn stringValue null oder leer ist
*/
private Instant stringToInstant(String stringValue) {
- return stringValue != null && !stringValue.isBlank() ? Instant.parse(stringValue) : null;
+ if (stringValue == null || stringValue.isBlank()) {
+ return null;
+ }
+
+ // Versuch mit ISO-8601 Format (moderner Standard)
+ try {
+ return Instant.parse(stringValue);
+ } catch (Exception e) {
+ // Fallback auf älteres Format "yyyy-MM-dd HH:mm:ss" (als UTC)
+ try {
+ LocalDateTime dateTime = LocalDateTime.parse(stringValue,
+ DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+ return dateTime.atZone(ZoneId.of("UTC")).toInstant();
+ } catch (Exception fallbackException) {
+ logger.warn("Fehler beim Parsen der Instant-String '{}' in beiden Formaten (ISO-8601 und Legacy-Format)",
+ stringValue, fallbackException);
+ return null;
+ }
+ }
}
/**