在R 3.3.3中,使用在Linux上运行的软件包rJava(版本0.9-9)(RHEL 6.9),运行以下代码时遇到错误,从R字符串创建Java日期:< / p>
library(rJava)
rDateString <- "2016-01-01 10:00:00"
.jinit()
df <- .jnew("java/text/SimpleDateFormat", "yyyy-MM-dd HH:mm:ss")
pp <- .jnew("java/text/ParsePosition", as.integer(0))
d <- .jcall(df, "Ljava/util/Date", "parse", rDateString, pp)
这会出现以下错误:
Error in .jcall(df, "Ljava/util/Date", "parse", rDateString, pp) :
method parse with signature (Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/util/Date not found
这让我感到困惑,因为这种方法应该可用。在我的SimpleDateFormat对象上调用.jmethods
会导致(剪辑):
> .jmethods(df)
[5] "public java.util.Date java.text.SimpleDateFormat.parse(java.lang.String,java.text.ParsePosition)"
所以,据我所知,我正在遵守parse
方法签名,但仍然存在错误。谁能解释一下我在这里缺少的东西?非常感激。
答案 0 :(得分:0)
缺少分号(Ljava/util/Date
=&gt; Ljava/util/Date;
):
d <- .jcall(df, "Ljava/util/Date;", "parse", rDateString, pp)
d
[1] "Java-Object{Fri Jan 01 10:00:00 CET 2016}"