R не знает, как преобразовать объекты Java, другие примитивы, отображаемые через JNI (при использовании .jcall). Вам необходимо будет предоставить свое собственное преобразование, например. путем анализа строкового представления вашего проекта даты с использованием as.POSIXct (j_d2 $ toString, format = "..."). См.? Strptime для спецификации формата.
Например, в моей местности я использую следующий формат:
> library(rJava)
> .jinit()
> j_d2 <- str(.jnew("java/util/Date"))
> j_d2$toLocaleString()
[1] "8-Dec-2013 9:05:00 PM"
> as.POSIXct(j_d2$toLocaleString(), format="%e-%b-%Y %X %p")
[1] "2013-12-08 09:05:00 PST"
Преобразование строки является неэффективным, если вам нужно конвертировать много дат. В качестве альтернативы вы можете использовать это method, описанное Саймоном Урбанеком:
> d <- .jnew("java/util/Date","2013/12/08 08:00")
> d
[1] "Java-Object{Sun Dec 08 08:00:00 PST 2013}"
> # Java uses milliseconds, R expects seconds
> as.POSIXct(.jcall(d,"J","getTime")/1000, origin = "1960-01-01")
[1] "2003-12-08 08:00:00 PST"