Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting 如何排序和恢复日期时间_Sorting_Go_Hyperledger_Chaincode - Fatal编程技术网

Sorting 如何排序和恢复日期时间

Sorting 如何排序和恢复日期时间,sorting,go,hyperledger,chaincode,Sorting,Go,Hyperledger,Chaincode,我坐在一个Go结构上,其中变量之间有一个日期类型。使用此日期字段对结构应用订单时,日期不会返回,只返回默认值。 我正在使用hyperledger结构来存储这些值​​并取回它们。 链码中存储的值如下所示: Chaincode invoke successful. result: status:200 payload:"{\"XXX\":1,\"YYY\":12 ,\"ZZZ\":92,\"DATE\":16/

我坐在一个Go结构上,其中变量之间有一个日期类型。使用此日期字段对结构应用订单时,日期不会返回,只返回默认值。 我正在使用hyperledger结构来存储这些值​​并取回它们。 链码中存储的值如下所示:

Chaincode invoke successful. result: status:200 payload:"{\"XXX\":1,\"YYY\":12 ,\"ZZZ\":92,\"DATE\":16/Nov/2020 17:50:04}"
其中,我正在使用time.NOW().UTC().Format(..)在链码内设置的“DATE”参数

我有一个名为N的结构,其中包含以下字段:

type N struct {
        Xxx int `json:"XXX"`
        Yyy int `json:"YYY"`
        Zzz float64 `json:"ZZZ"`
        Date time.Time `json:"DATE"`
}
我正在尝试使用函数GetHistoryForKey进行恢复(args[0])

但当我调用此函数对历史进行排序时,日期值出现错误,如下所示:

{“XXX”:1,“YYY”:12,“ZZZ”:92,“日期”:“0001-01-01T00:00:00Z”}

如果调用恢复此特定键的其他函数,则正确的值返回ok

{“XXX”:1,“YYY”:12,“ZZZ”:92,“日期”:2020年11月16日17:50:04}

我对无返回值排序的错误是什么

我是这样安排日期的:

func set(stub shim.ChaincodeStubInterface, args []string) (string, error) {
        if len(args) != 2 {
                return "", fmt.Errorf("Something error")
        }
        var currDate = time.Now().UTC().Format(("02/Jan/2006 15:04:05"))
        var ret = strings.Replace(args[1], "???", currDate, -1)
        err := stub.PutState(args[0], []byte(ret))
        if err != nil {
                return "", fmt.Errorf("something", args[0])
        }
        return retorno, nil
}
通过以下代码调用:

docker exec -it cli peer chaincode invoke -o orderer.example.com:7050 -C mychannel -n mychain -c '{"Args":["set","key1", "{\"XXX\":1,\"YYY\":80,\"ZZZ\":30.0,"\DATE\":???}"]}'

我能够解决这个问题,在将输入日期插入区块链之前,将其以0001-01-01T00:00:00Z的格式放置。
当我搜索时,日期的格式正确,值正确。

你能添加你的
N
结构的声明代码吗?嗨,我已经声明了,但是没有类似的代码,对不起。。。我已经改正了。欢迎提供任何帮助或提示,因为我已经花了很多时间尝试;)您没有检查来自
json.Unmarshal
的错误,这可能是相关的。您确认了这个函数的JSON输入中的日期是有效的吗?我相信不检查是可以的,因为我得到的是存储的其他字段,而不是日期。我把更多的信息放在我如何调用和传递给函数的帖子上。
docker exec -it cli peer chaincode invoke -o orderer.example.com:7050 -C mychannel -n mychain -c '{"Args":["set","key1", "{\"XXX\":1,\"YYY\":80,\"ZZZ\":30.0,"\DATE\":???}"]}'