Java JNI返回日期

Java JNI返回日期,java,android,c++,c,java-native-interface,Java,Android,C++,C,Java Native Interface,我有一个JNI方法,它与const struct tm myTimeInfo一起运行。最后,我想将结果返回给Java。但是,我不能直接返回日期。到目前为止,我将struct tm转换为jstring,并在java中返回到Date,这似乎有些奇怪。有没有办法直接返回用struct tm填充的Date 我目前的解决方案是: JNIEXPORT jstring JNICALL package_getTimeLineEndUTC(JNIEnv *env, jobject thiz) { cons

我有一个JNI方法,它与
const struct tm myTimeInfo
一起运行。最后,我想将结果返回给Java。但是,我不能直接返回日期。到目前为止,我将
struct tm
转换为
jstring
,并在java中返回到
Date
,这似乎有些奇怪。有没有办法直接返回用
struct tm
填充的
Date

我目前的解决方案是:

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

您可以返回一个
long
,即从历元开始的毫秒,而不是返回字符串:

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

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

您可以返回
long
,即从纪元开始的毫秒数:

const struct tm timeInfo = generateTime();
return mktime(&timeInfo) * 1000;
然后在java端使用
Date(长日期)