我正在尝试将月,日和年分别添加到控制台。
我需要能够单独访问日期的每个部分。我可以从“时间”包中使用time.now()获得整个事情,但之后我就陷入了困境。
有人能告诉我哪里出错吗?
答案 0 :(得分:15)
你真的很接近:)然后从time.Now()
返回值是Time
类型,查看包文档here会显示一些你可以调用的方法(要获得更快的概述,请转到here并查看type Time
)。要获得上面提到的每个属性,您可以这样做:
package main
import (
"fmt"
"time"
)
func main() {
t := time.Now()
fmt.Println(t.Month())
fmt.Println(t.Day())
fmt.Println(t.Year())
}
如果您有兴趣将Month
打印为整数,可以使用Printf
函数:
package main
import (
"fmt"
"time"
)
func main() {
t := time.Now()
fmt.Printf("%d\n", t.Month())
}
答案 1 :(得分:1)
可以使用time.Time
方法从Date()
类型中提取日,月和年。它将返回日期和年份的整数,以及该月的time.Month
。您还可以使用Clock()
方法提取小时,分钟和秒值,该方法会返回所有结果的整数。
例如:
package main
import (
"fmt"
"time"
)
func main() {
t := time.Now()
y, mon, d := t.Date()
h, m, s := t.Clock()
fmt.Println("Year: ", y)
fmt.Println("Month: ", mon)
fmt.Println("Day: ", d)
fmt.Println("Hour: ", h)
fmt.Println("Minute: ", m)
fmt.Println("Second: ", s)
}
请记住,Month变量(mon
)以time.Month
的形式返回,而不是字符串或int。您仍然可以使用fmt.Print()
打印它,因为它有String()
方法。
答案 2 :(得分:0)
您只需解析字符串即可获取年,月和日。
package main
import (
"fmt"
"strings"
)
func main() {
currTime := time.Now()
date := strings.Split(currTime.String(), " ")[0]
splits := strings.Split(date, "-")
year := splits[0]
month := splits[1]
day := splits[2]
fmt.Printf("%s-%s-%s\n", year, month, day)
}