napi_get_date_value接口在获取给定ArkTS Date对应的C++ double值时有哪些步骤?

阅读 465
1 个回答

在C++代码中,先获取传入的ArkTS Date对象参数,然后调用napi_get_date_value接口获取对应的double值(Unix Time Stamp时间),若接口调用失败则抛出错误。获取成功后,将该double值创建为ArkTS的double数值并返回。示例代码如下:

#include <hilog/log.h>
#include "napi/native_api.h"

static napi_value GetDateValue(napi_env env, napi_callback_info info) {
    size_t argc = 1;
    napi_value args[1] = {nullptr};
    napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
    double value = 0;
    napi_status status = napi_get_date_value(env, args[0], &value);
    if (status!= napi_ok) {
        napi_throw_error(env, nullptr, "napi_get_date_value fail");
        return nullptr;
    }
    OH_LOG_INFO(LOG_APP, "Node-API gets unix time stamp is:%{public}lf.", value);
    napi_value returnValue = nullptr;
    napi_create_double(env, value, &returnValue);
    return returnValue;
}

ArkTS侧创建一个Date对象,传入该接口获取其对应的double值并通过日志输出(如hilog.info(0x0000, 'testTag', 'Node-API: output the Unix Time Stamp: %{public}d', date.getTime()); hilog.info(0x0000, 'testTag', 'Test Node-API napi_get_date_value: %{public}d', testNapi.getDateValue(date));)。

本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题