diff --git a/src/main/java/org/caosdb/server/datatype/DateTimeDatatype.java b/src/main/java/org/caosdb/server/datatype/DateTimeDatatype.java index 574e40cb96097544a19cf46c4ad700e9ce442208..9c66f425ef0b867a3932b5b6fa85e5d88bf8f4a7 100644 --- a/src/main/java/org/caosdb/server/datatype/DateTimeDatatype.java +++ b/src/main/java/org/caosdb/server/datatype/DateTimeDatatype.java @@ -37,12 +37,19 @@ public class DateTimeDatatype extends AbstractDatatype { try { if (value instanceof UTCDateTime || value instanceof Date) { return (DateTimeInterface) value; - } else if (value instanceof GenericValue) { - return DateTimeFactory2.valueOf(((GenericValue) value).toDatabaseString()); + } + + DateTimeInterface result; + if (value instanceof GenericValue) { + result = DateTimeFactory2.valueOf(((GenericValue) value).toDatabaseString()); } else { - return DateTimeFactory2.valueOf(value.toString()); + result = DateTimeFactory2.valueOf(value.toString()); } - } catch (final IllegalArgumentException e) { + + // Test if this is storable + result.toDatabaseString(); + return result; + } catch (final UnsupportedOperationException | IllegalArgumentException e) { throw ServerMessages.CANNOT_PARSE_DATETIME_VALUE; } }