Verwenden Sie Rhino anstelle von ScriptEngine, um Javascript-Code in Java auszuführen

Auf der Grundlage der DiskussionUmwandlung der Zeichenfolgendarstellung eines unbekannten Datumsformats in ein Datum in Java, Ich möchte das JavaScript verwendenDate -Funktion in meinem App-Engine-Projekt. ScriptEngine funktioniert jedoch nicht mit App-Engine. Also brauche ich ein bisschen Hilfe bei der Umstellung auf Rhino. Hier ist der ScriptEngine-Code, den ich konvertieren muss:

ScriptEngineManager scriptEngineManager = new ScriptEngineManager();
ScriptEngine engine = scriptEngineManager.getEngineByName("JavaScript");
String script = "var date = new Date('" + dateInUnknownFormat + "'); var timestamp = date.getTime();";
engine.eval(script);
long timestamp = ((Double) engine.get("timestamp")).longValue();

Das Folgende hat nicht funktioniert

private static long parseDateUsingRhino(String dateInUnknownFormat){
    Context mozillaJsContext = Context.enter();
    Scriptable scope = mozillaJsContext.initStandardObjects();
    String script = "var date = new Date('" + dateInUnknownFormat + "'); var timestamp = date.getTime();";
    Object obj = mozillaJsContext.evaluateString( scope, script, "TestScript", 1, null );
    Double timeDouble = Double.parseDouble((String) obj);
    long timestamp = timeDouble.longValue();
    return  timestamp;
}

und ich habe bereits ersetzt"TestScript" mitnull und"".

Antworten auf die Frage(4)

Ihre Antwort auf die Frage