try {
StandardTextReader parser = new StandardTextReader();
IValue result = parser.read(VF, new StringReader("$" + datePart + "T" + timePart));
return makeResult(TF.dateTimeType(), result, eval);
} catch (FactTypeUseException e) {
throw new DateTimeSyntax(e.getMessage(), eval.getCurrentAST().getLocation());
} catch (FactParseError e) {
throw new DateTimeSyntax(e.getMessage(), eval.getCurrentAST().getLocation());
} catch (IOException e) {
throw new ImplementationError(e.getMessage());
}
}