以前做odbc开发,需要将java.sql.Date或java.util.Date转换成以C++的tm结构,结果自己花了一段时间来研究这个转换过程,写了相关的转换算法。今天无意中看到COleDateTime能转换,是不是有点“悲催”的味道

jclass cls = m_env->FindClass("java/sql/Time");
if (m_env->IsInstanceOf(pLine, cls) == JNI_TRUE) {
jmethodID intValue = m_env->GetMethodID(cls, "getTime", "()J");
jlong iVal = (jlong)m_env->CallLongMethod(pLine, intValue);
COleDateTime da = COleDateTime(iVal / 1000);
string strValue = da.Format("%H:%M:%S");
wstring w = TComHelper::MultCHarToWideChar(strValue);
vParam.vt = VT_BSTR;
vParam.bstrVal = ::SysAllocString(w.c_str());
}

09-19 00:50