如何在MarkLogic中将字符串转换为日期类型?

Rya*_*yan 3 javascript data-conversion marklogic

我目前在将String数据类型转换为Date类型方面遇到一些挑战。我使用了 MarkLogic JavaScript 函数xdmp.parseDateTime,但总是收到以下错误:

场景:将“2013-04-21”(字符串)转换为2013-04-21(日期类型)

代码:

let targetDateString = "2013-04-21";
let targetDate = new Date();

targetDate = xdmp.parseDateTime("[Y0001]-[M01]-[D01]", 
xs.date(targetDate));
Run Code Online (Sandbox Code Playgroud)

错误信息:

XDMP-ARGTYPE: xdmp.parseDateTime("[Y0001]-[M01]-[D01]", xs.date("2013-04-21")) -- arg2 不是 String 类型

我是否使用了正确的 MarkLogic 函数,为其提供了正确的参数?或者有更好的方法吗?

如何将日期转换回字符串数据类型?

小智 5

xs.date("2013-04-21")是 xquery 日期构造函数(移植到 JS),接受一个字符串并返回一个 xs:date。xs.dateTime("2013-04-21T00:00:00")会给你一个 xs:dateTime。

xdmp.parseDateTime可以将更多格式的字符串转换为 xs:dateTime,第二项是字符串:xdmp.parseDateTime("[Y0001]-[M01]-[D01]", targetDateString)

请参阅https://docs.marklogic.com/xdmp.parseDateTime

转换回字符串只是fn.string(yourdate)