Java JNI返回日期
我有一个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
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(长日期)