JNI返回日期

时间:2018-02-08 15:47:44

标签: java android c++ c java-native-interface

我有使用const struct tm myTimeInfo操作的JNI方法。最后,我想将结果返回给Java。但是,我无法直接返回Date。到目前为止,我将struct tm转换为jstring,并将java转换为Date,这似乎很奇怪。有没有办法如何直接返回Date填充struct tm

我目前的解决方案如下:

JNIEXPORT jstring JNICALL package_getTimeLineEndUTC(JNIEnv *env, jobject thiz) {
    const struct tm timeInfo = generateTime();
    return env->NewStringUTF(asctime(&timeInfo));
}

1 个答案:

答案 0 :(得分:2)

除了返回一个字符串,你可以返回long,即自纪元以来毫秒:

const struct tm timeInfo = generateTime();
return mktime(&timeInfo) * 1000;

然后在java端使用Date(long date)