在 Hyperledger 中仅在 DateTime 字段 (ISO-8601) 中指定时间
Specify only Time in DateTime field (ISO-8601) in Hyperledger
我正在处理 Hyperledger Composer Playground 并且只想在 DateTime
字段中指定时间,完全跳过日期。但是每当我尝试创建资产时,每次我都会收到 RangeError: Invalid time value
错误。
我尝试在以下示例的某些变体中为模型文件中的变量提供默认值,但也不起作用。
o DateTime dispatchTime default = "T06:18:42.716Z"
我肯定遗漏了一些明显的东西,因为它是 ISO-8601 标准格式,但找不到确切的解决方案来让它在 Hyperledger Composer 中专门工作。提前致谢。
不,您不能只将时间存储到DateTime
变量。
如文档中所述,它只接受兼容 ISO-8601 的时间实例,具有可选时区和 UTZ 偏移量。
您可以在响应时手动将其转换为仅时间格式。
有关 Hyperledger Primitive 类型的更多详细信息,请查看下面的 link:
https://hyperledger.github.io/composer/latest/reference/cto_language
您收到 invalid time
错误,因为您 不能仅将时间 存储在 dispatchTime
变量中,因为它是一个 ISO-8601 Date-Time format。你可以看看
但是,如果您只想存储 时间,您可以在 logic.js
文件中的一个事务处理器函数中转换它,如下所示:
tx.assetObject.dispatchTime = new Date().toISOString().split(/T/)[1];
希望对您有所帮助!
我正在处理 Hyperledger Composer Playground 并且只想在 DateTime
字段中指定时间,完全跳过日期。但是每当我尝试创建资产时,每次我都会收到 RangeError: Invalid time value
错误。
我尝试在以下示例的某些变体中为模型文件中的变量提供默认值,但也不起作用。
o DateTime dispatchTime default = "T06:18:42.716Z"
我肯定遗漏了一些明显的东西,因为它是 ISO-8601 标准格式,但找不到确切的解决方案来让它在 Hyperledger Composer 中专门工作。提前致谢。
不,您不能只将时间存储到DateTime
变量。
如文档中所述,它只接受兼容 ISO-8601 的时间实例,具有可选时区和 UTZ 偏移量。
您可以在响应时手动将其转换为仅时间格式。
有关 Hyperledger Primitive 类型的更多详细信息,请查看下面的 link:
https://hyperledger.github.io/composer/latest/reference/cto_language
您收到 invalid time
错误,因为您 不能仅将时间 存储在 dispatchTime
变量中,因为它是一个 ISO-8601 Date-Time format。你可以看看
但是,如果您只想存储 时间,您可以在 logic.js
文件中的一个事务处理器函数中转换它,如下所示:
tx.assetObject.dispatchTime = new Date().toISOString().split(/T/)[1];
希望对您有所帮助!