如何在GO中为字符串值分配时间格式?

时间:2017-12-26 04:05:56

标签: go

我有以下代码。我正在尝试从字符串值转换为时间格式并分配值并在第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,
    })

}

3 个答案:

答案 0 :(得分:2)

在您的情况下发生错误是因为您对2种类型使用相同的var,如果您将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函数中处理错误。

答案 1 :(得分:1)

time.Parse返回时间和错误。您将字符串部分分配给pdsvalue,当您分配" PSD"的FormValue时,该部分已被声明为字符串。因此,psdvalue已经是字符串类型,无法分配time.Time值。在作业中使用不同的变量名称(也不要吞下错误)。

答案 2 :(得分:0)

您必须同时获取两个返回值:

const shortForm = "2006-Jan-02"
t, _ = time.Parse(shortForm, "2013-Feb-03")

https://golang.org/pkg/time/#Parse