23

I'm trying to pint the month, day, and year, separately to the console.

I need to be able to access each section of the date individually. I can get the whole thing using time.now() from the "time" package but I'm stuck after that.

Can anyone show me where I am going wrong please?

4

3 回答 3

29

您实际上非常接近 :) 然后返回值 fromtime.Now()是一种Time类型,查看包文档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())
}
于 2013-09-05T03:54:35.900 回答
2

可以time.Time使用该方法从类型中提取日、月和年Date()。它将返回日期和年份的整数,以及time.Month月份的 a。您还可以使用该方法提取 Hour、Minute 和 Second 值,该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) 以 a 形式返回time.Month,而不是以字符串或 int 形式返回。你仍然可以打印它,fmt.Print()因为它有一个String()方法。

操场

于 2013-09-05T03:54:39.177 回答
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)
}
于 2018-11-21T01:36:35.163 回答