使用rJava创建新的java.sql.Date

ima*_*gan 0 r

我尝试了以下内容:( .jnew("java/sql/Date", 1912324L))使用rJava包)并获得以下内容:

.jnew错误("java/sql/Date",1912324L):java.lang.NoSuchMethodError:

我尝试时出现同样的错误.jnew("java/util/Date", 1912324L).

有关为什么会发生这种情况的任何想法?

NB:这很好用 .jnew("java/lang/String", "s")

必要的session_info():

Session info --------------------------------------------------------------------------------------
 setting  value                       
 version  R version 3.2.1 (2015-06-18)
 system   x86_64, darwin14.4.0        
 ui       RStudio (0.99.441)          
 language (EN)                        
 collate  en_AU.UTF-8                 
 tz       Australia/Sydney            

Packages ------------------------------------------------------------------------------------------
 package   * version date       source        
 crayon      1.3.0   2015-06-05 CRAN (R 3.2.1)
 curl        0.9     2015-06-19 CRAN (R 3.2.1)
 devtools  * 1.8.0   2015-05-09 CRAN (R 3.2.1)
 digest      0.6.8   2014-12-31 CRAN (R 3.2.1)
 git2r       0.10.1  2015-05-07 CRAN (R 3.2.1)
 memoise     0.2.1   2014-04-22 CRAN (R 3.2.1)
 Rcpp        0.11.6  2015-05-01 CRAN (R 3.2.1)
 rJava     * 0.9-6   2013-12-24 CRAN (R 3.2.1)
 rversions   1.0.1   2015-06-06 CRAN (R 3.2.1)
 testthat  * 0.10.0  2015-05-22 CRAN (R 3.2.1)
 xml2        0.1.1   2015-06-02 CRAN (R 3.2.1)
Run Code Online (Sandbox Code Playgroud)

并且...运行Java 1.6:

java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-466.1-11M4716)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-466.1, mixed mode)
Run Code Online (Sandbox Code Playgroud)

nic*_*ola 5

构造函数java.sql.Date接受一个longas参数而你正在传递一个int.由于R没有native floatlongtypes,因此rJava提供了转换数字R向量的函数.jfloat.jlong函数.这有效:

.jnew("java/sql/Date", .jlong(1912324))
Run Code Online (Sandbox Code Playgroud)

请记住,您必须提供1970-01-01之间的毫秒数,因此您提供的值极不可能符合您的要求.