我有以下代码。我正在尝试从字符串值转换为时间格式并分配值并在第0行失败并出现以下错误:
cannot assign time.Time to psdvalue (type string) in multiple assignment
码:
type Tracking struct {
release_name string
planned_start_date time.Time
}
const layout = "01-02-2006"
func saveHandler(response http.ResponseWriter, request *http.Request) {
releasevalue := request.FormValue("ReleaseName")
psdvalue := request.FormValue("PSD")
if len(strings.TrimSpace(psdvalue)) > 0 {
//line no: psdvalue, _ = time.Parse(layout, psdvalue)
}
array = append(array, Tracking{
release_name: releasevalue,
planned_start_date: psdvalue,
})
}
在你的情况下发生错误,因为你使用相同的var为2种类型,如果你将psdvalue
更改为其他东西它将工作。点击这里 - https://play.golang.org/p/Z8_--GluMoP
package main
import (
"fmt"
"time"
)
func main() {
layout := "01-02-2006"
psdvalue := "04-04-2004"
parsed, err := time.Parse(layout, psdvalue)
if err != nil {
panic(err)
}
fmt.Printf("%v", parsed)
}
另外,不要忘记处理Parse函数中的错误。
time.Parse
返回时间和错误。您将字符串部分分配给pdsvalue
,当您指定“PSD”的FormValue
时,该字符串部分已被声明为字符串。因此,psdvalue
已经是字符串类型,无法分配time.Time值。在作业中使用不同的变量名称(也不要吞下错误)。
您必须同时获取两个返回值:
const shortForm = "2006-Jan-02"
t, _ = time.Parse(shortForm, "2013-Feb-03")