在Hyperledger的DateTime字段(ISO-8601)中仅指定时间

时间:2018-10-25 06:59:50

标签: datetime hyperledger-fabric hyperledger datetime-format hyperledger-composer

我正在研究Hyperledger Composer Playground,并且只想在DateTime字段中指定时间,而完全跳过日期。但是,每当我尝试创建资产时,每次都会出现RangeError: Invalid time value错误。

在以下示例的某些变体中,我尝试将默认值赋予模型文件中的变量,但也不起作用。

o DateTime dispatchTime default = "T06:18:42.716Z"

我必须在其中遗漏一些明显的东西,因为它是ISO-8601标准格式,但是找不到确切的解决方案以使其在Hyperledger Composer中特别工作。预先感谢。

2 个答案:

答案 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];

希望有帮助!