将打印日期转到控制台

时间:2013-09-05 03:47:42

标签: go

我正在尝试将月,日和年分别添加到控制台。

我需要能够单独访问日期的每个部分。我可以从“时间”包中使用time.now()获得整个事情,但之后我就陷入了困境。

有人能告诉我哪里出错吗?

3 个答案:

答案 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()方法。

Playground

答案 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)
}