使用 Rhino 而不是 ScriptEngine 在 Java 中运行 Javascript 代码
2022-09-01 23:55:41
基于在java中将未知日期格式的字符串表示形式转换为日期的讨论,我想在我的App-Engine项目中使用JavaScript函数。但是,ScriptEngine 不适用于 App-Engine。所以我需要一点帮助来转换到犀牛。以下是我需要转换的脚本引擎代码:Date
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();
以下情况不起作用
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;
}
我已经用 和 替换了 ."TestScript"
null
""