JNI 返回日期

JNI return Date

本文关键字:日期 返回 JNI      更新时间:2023-10-16

我有 JNI 方法,可以const struct tm myTimeInfo.最后,我想将结果返回给Java。但是,我不能直接返回Date.到目前为止,我将struct tm转换为jstring,并在java中转换回Date,这似乎很奇怪。有没有办法在充满struct tmDate直接返回?

我目前的解决方案是这样的:

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)