Basierend auf der Diskussion converting string representation of unknown date-format to Date in java, möchte ich die JavaScript-Funktion Date
in meinem App-Engine-Projekt verwenden. ScriptEngine funktioniert jedoch nicht mit App-Engine. Also brauche ich ein wenig Hilfe, um zu Rhino zu konvertieren. Hier ist der Scriptcode ich konvertieren müssen:Verwenden von Rhino anstelle von ScriptEngine zum Ausführen von JavaScript-Code in Java
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();
Die folgende nicht funktioniert hat
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"
mit null
und ""
.
Haben Sie vergessen, die Fehlerspur hinzuzufügen? – Filip
Nein. Ich nahm es heraus, weil es irrelevant war. Ich weiß einfach nicht, wie man den Code richtig schreibt. Die Irrelevanz liegt daran, dass ich verschiedene Fehler oder keine Fehler bekomme, je nachdem, was ich versuche. Aber am Ende kann ich Rhino nie dazu bringen, ein Ergebnis zu erzielen. Jemand, der weiß, wie Rhino funktioniert, wird kein Problem damit haben, die ScriptEngine-Version in Rhino zu übersetzen. – learner