Na podstawie dyskusji converting string representation of unknown date-format to Date in java, chcę użyć funkcji JavaScript Date
w moim projekcie App-Engine. Jednak ScriptEngine nie działa w App-Engine. Potrzebuję więc niewielkiej pomocy w konwersji na Rhino. Oto kod ScriptEngine muszę konwertować:Używanie Rhino zamiast ScriptEngine do uruchamiania kodu JavaScript w Javie
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();
Poniższa nie pracował
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;
}
i już zastąpione "TestScript"
z null
i ""
.
Czy zapomniałeś dodać ślad błędu? – Filip
Nie. Wyjąłem to, ponieważ nie miało to znaczenia. Po prostu nie wiem, jak poprawnie napisać kod. Nieistotność wynika z tego, że w zależności od tego, co próbuję, otrzymuję różne błędy lub brak błędów. Ale w końcu nigdy nie zmusiłbym Rhino do osiągnięcia rezultatu. Najwyraźniej ktoś, kto wie, jak działa Rhino, nie będzie miał problemu z tłumaczeniem wersji ScriptEngine na Rhino. – learner