Go中的日期转换

问题描述 投票:-1回答:1

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

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,如何将空值分配给开始日期。

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

go
1个回答
3
投票

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

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

将打印:

sdate 2016-02-03

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

var sdate time.Time
© www.soinside.com 2019 - 2024. All rights reserved.