基于讨论converting string representation of unknown date-format to Date in java,我想在我的App-Engine项目中使用JavaScript Date
函数。但是,ScriptEngine不适用于App-Engine。所以我需要一点帮助转换到犀牛。这里是ScriptEngine的代码,我需要转换:使用Rhino代替ScriptEngine在Java中运行Javascript代码
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
和""
。
你忘了添加错误跟踪吗? – Filip
不,我把它拿出来是因为它不相关。我只是不知道如何正确编写代码。无关因为我得到不同的错误或没有错误取决于我的尝试。但最终,我决不会让犀牛产生结果。显然,知道Rhino如何工作的人,将ScriptEngine版本翻译成Rhino没有任何问题。 – learner