Go中的日期转换

时间:2017-12-26 15:37:55

标签: go

我有以下代码。将日期值作为请求中的字符串类型并尝试转换为时间类型。但是,我对格式有一些问题。

type LeanData struct {
    Start_Date time.Time
}   
const dateLayout = "01-02-2006"

startdate := request.FormValue("startdate")
if len(strings.TrimSpace(startdate)) > 0 {
    sdate, err := time.Parse(dateLayout, startdate)
}
fmt.Println("startdate", startdate)
fmt.Println("sdate", sdate)

我的输出低于输出。

startdate 02-03-2016
sdate 2016-02-03 00:00:00 +0000 UTC

在这里,我正在进行转换,因为开始日期是time.Time类型。  我想把它转换为2016-02-03而不是2016-02-03 00:00:00 +0000 UTC。 另外,如果请求中的值为nil / empty,如何将空值分配给开始日期。

有人能让我知道如何实现这个目标吗?

1 个答案:

答案 0 :(得分:3)

time.Parse返回类型为time.Time的对象,其中包含日期和时间信息。 Go中没有类型只包含日期信息。但是,您可以在格式化时忽略日期的时间部分,例如:

fmt.Println("sdate", sdate.Format("2006-01-02"))

将打印:

sdate 2016-02-03

要初始化空白时间,只需将其声明为:

var sdate time.Time