我有使用 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));
}
最佳答案
您可以返回一个long
,即自纪元以来的毫秒数,而不是返回一个字符串:
const struct tm timeInfo = generateTime();
return mktime(&timeInfo) * 1000;
然后在java端使用Date(long date)
关于java - JNI 返回日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48689459/