我正在研究Hyperledger Composer Playground,并且只想在DateTime
字段中指定时间,而完全跳过日期。但是,每当我尝试创建资产时,每次都会出现RangeError: Invalid time value
错误。
在以下示例的某些变体中,我尝试将默认值赋予模型文件中的变量,但也不起作用。
o DateTime dispatchTime default = "T06:18:42.716Z"
我必须在其中遗漏一些明显的东西,因为它是ISO-8601标准格式,但是找不到确切的解决方案以使其在Hyperledger Composer中特别工作。预先感谢。
答案 0 :(得分:2)
否,您不能仅将时间存储到DateTime
变量中。
如文档中所述,它将仅接受 ISO-8601兼容的时间实例,并带有可选的时区和UTZ偏移量。
您可以在响应时将其手动转换为仅时间格式。
有关Hyperledger Primitive类型的更多详细信息,请查看以下链接:
https://hyperledger.github.io/composer/latest/reference/cto_language
答案 1 :(得分:1)
您收到invalid time
错误,因为您不能只将时间存储在dispatchTime
变量中,因为它是ISO-8601 Date-Time format。您可以检查
但是,如果您只想存储 时间,则可以将其转换为logic.js
文件中的事务处理程序功能之一,如下所示:
tx.assetObject.dispatchTime =新的Date()。toISOString()。split(/ T /)[1];
希望有帮助!