使用javax.script格式化数字

使用javax.script格式化数字,java,Java,我刚刚升级到Java8。之前,我使用的是nashorn脚本引擎,以下功能可以正常工作: engine.eval("format('%04d-%02d-%02d', 1966, 07, 18);"); 现在我得到: <eval>:1 ReferenceError: "format" is not defined :1引用错误:“格式”未定义 我已经在谷歌上搜索了一天多了,但我就是找不到这样的例子。这是否仍然得到支持 非常感谢您的帮助。这毫无意义。例如,打开chrome,看到fo

我刚刚升级到Java8。之前,我使用的是nashorn脚本引擎,以下功能可以正常工作:

engine.eval("format('%04d-%02d-%02d', 1966, 07, 18);"); 
现在我得到:

<eval>:1 ReferenceError: "format" is not defined
:1引用错误:“格式”未定义
我已经在谷歌上搜索了一天多了,但我就是找不到这样的例子。这是否仍然得到支持


非常感谢您的帮助。

这毫无意义。例如,打开chrome,看到format不是一个全局可用的函数,您会得到完全相同的异常

看看这个:

如果您想这样使用它,可能必须定义format函数的原型

下面是一些示例代码,可以帮助您开始:

engine.eval(""
                + "var options = {year: \"numeric\", month: \"numeric\", day: \"numeric\"};"
                + "var res = new Date(1966, 07, 18).toLocaleDateString('en', options);"
                + "print(res);"); 
此外,还有一些非常有趣的.md文件,您可以在其中看到nashorn中公开的全局内容:


格式不是javascript中的默认函数,当然,您可以对其进行原型化。