Введите дату печати на консоль
Я пытаюсь распечатать месяц, день и год отдельно для консоли.
Мне нужно иметь доступ к каждому разделу даты в отдельности. Я могу получить все это с помощью time.now()
из пакета "time", но я застрял после этого.
Может кто-нибудь показать мне, где я иду не так, пожалуйста?
Ответы
Ответ 1
Вы на самом деле довольно близко:) Тогда возвращаемое значение из time.Now()
является типом Time
и смотрит на документы пакета здесь покажет вам некоторые из методов, которые вы можете вызвать (для более быстрого обзора перейдите здесь и посмотрите под 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())
}
Ответ 2
День, месяц и год можно извлечь из time.Time
с помощью Date()
. Он вернет ints для дня и года и time.Month
за месяц. Вы также можете извлечь значения Hour, Minute и Second с помощью метода Clock()
, который возвращает int для всех результатов.
Например:
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()
.
Игровая площадка
Ответ 3
Вы можете просто разобрать строку, чтобы получить год, месяц и день.
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)
}