在Java.util.Date中解析org.mozilla.javascript.NativeDate

ale*_*oot 5 javascript java date

我正在尝试解析从使用rhino库评估的JavaScript脚本到java.util.Date的日期,我可以将org.mozilla.javascript.NativeDate转换为java.util.Date吗?

如果使用Context.tostring方法将NativeDate转换为字符串,我将获得以下格式的日期:

Wed Oct 12 2011 16:17:59 GMT+0200 (CEST)
Run Code Online (Sandbox Code Playgroud)

如何将此字符串日期表示解析为java.util.Date对象?

小智 7

在Rhino中使用

context.jsToJava(nativeDateObj, Date.class);

  • 如果有人想知道,这是一个静态方法,您不需要访问脚本上下文. (2认同)

Ral*_*alf 5

Bvesco 的回答很有效。然而,反过来做(java 到 js)并不那么简单 -Context.javaTojs()不适用于日期。我最终在这里找到了解决方案- 使用 javascript 构造函数:

Object js = context.newObject(scope, "Date", new Object[] {date.getTime()});
Run Code Online (Sandbox Code Playgroud)

上面的帖子还提到了以下将日期从 js 转换为 java 的替代方法(我尚未确认):

Date date = new Date((long) ScriptRuntime.toNumber(s)); 
Run Code Online (Sandbox Code Playgroud)