mins, _ := time.ParseDuration(fmt.Sprintf("%dmins", v.SalePeriod))
local, _ := time.LoadLocation("Local")
t, _ := time.ParseInLocation("2006-01-02 15:04:05", v.CreateTime, local)
vTime := t.Add(time.Minute * mins)
t.Add(time.Minute * mins)不起作用,更新的时间没有得到更新
我尝试执行此操作:vTime:= t.添加(时间.分钟 * 分钟)
// But the Piece of Block is not getting Expired
if time.Now().Local().After(vTime) {
//Change status to expired
var bodyBytes [][]byte
bodyBytes = append(bodyBytes, []byte(v.ObjectOfSale))
bodyBytes = append(bodyBytes, []byte(v.Seller))
bodyBytes = append(bodyBytes, []byte(v.Buyer))
bodyBytes = append(bodyBytes, []byte("expired"))
//call smart contract
resp, err := bc.ChannelExecute("updateSelling", bodyBytes)
if err != nil {
return
}
var data map[string]interface{}
if err = json.Unmarshal(bytes.NewBuffer(resp.Payload).Bytes(), &data); err != nil {
return
}
fmt.Println(data)
}
1条答案
按热度按时间mm9b1k5b1#
函数
time.ParseDuration
需要格式为?m
的字符串,其中?
表示数字。您需要在格式字串中将
%dmins
变更为%dm
,才能使程式运作。链接:
time.ParseDuration
文档:https://pkg.go.dev/time#ParseDuration编辑
正如@Peter所指出的,在
time.Minute
上还存在冗余乘法