When returning Javascript objects Datein Java using Nashorn in Java 8, for example:
ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory.getEngineByName("nashorn");
Object js = engine.eval("new Date();");
On the following attempts, I get exceptions:
Date javaDate = (Date)js;
jdk.nashorn.api.scripting.ScriptObjectMirror cannot be cast to java.util.Date
Date javaDate = js.to(Date.class);
Cannot cast jdk.nashorn.internal.objects.NativeDate to java.util.Date
Date javaDate = (Date)ScriptUtils.convert(js.to(NativeDate.class), Date.class);
Cannot cast jdk.nashorn.internal.objects.NativeDate to java.util.Date
Back with Rhino I just used context.jsToJava(nativeDateObj, Date.class);.
Any ideas on how I can actually use this NativeDate when it returns to Java?
PS If I do js.toString (), it will give me "[Date 2012-01-01T19: 00: 00.000Z]". I guess I could regex make it out ... but why-oh-why ...
source
share