【发布时间】:2016-01-16 12:08:01
【问题描述】:
基于converting string representation of unknown date-format to Date in java 的讨论,我想在我的 App-Engine 项目中使用 JavaScript Date 函数。但是,ScriptEngine 不适用于 App-Engine。所以我需要一些帮助来转换为 Rhino。这是我需要转换的 ScriptEngine 代码:
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;
}
我已经用null和""替换了"TestScript"。
【问题讨论】:
-
您是否忘记添加错误跟踪?
-
没有。我把它拿出来,因为它无关紧要。我只是不知道如何正确编写代码。无关紧要是因为我得到不同的错误或没有错误取决于我的尝试。但最终,我永远无法让 Rhino 产生结果。显然,知道 Rhino 是如何工作的人,将 ScriptEngine 版本翻译成 Rhino 是没有问题的。
标签: javascript java google-app-engine rhino scriptengine