2013-04-16 4 views
2

Я знаю о пакете времени и о том, как вы можете анализировать шаблоны на основе представления даты/времени. Я хотел бы знать, как анализировать время. Теперь() за месяц до stdLongMonth.Анализ даты с подполем

т.е.

time.Now() // == April, 2013 
// Output: March, 2013 

Другими словами, можно разобрать Time.now() с методом sub.stdLongMonth()? Может ли кто-нибудь быть добрым и показать некоторые примеры?

ответ

4

Например,

package main 

import (
    "fmt" 
    "time" 
) 

func main() { 
    y, m, _ := time.Now().Date() 
    t := time.Date(y, m, 1, 0, 0, 0, 0, time.UTC) 
    fmt.Println(t.Format("January, 2006")) 
    t = time.Date(y, m-1, 1, 0, 0, 0, 0, time.UTC) 
    fmt.Println(t.Format("January, 2006")) 
} 

Выход:

April, 2013 
March, 2013 
+0

Отлично! пакет времени немного отличается от того, к чему я привык. TY Peter – Alex

-1

использование time.AddDate(), так как это будет также бесплатно вы из соображений часовых поясов:

package main 

import (
    "fmt" 
    "time" 
) 

func main() { 
    time := time.Now().AddDate(0,-1,0) 
    fmt.Println(time.Format("January, 2006")) 

} 
+0

Это не работает. Например, если дата time.Now() - 2013-03-31, результат - 2013-03-03, а выход - март 2013 г., а не февраль 2013 г. AddDate нормализует свой результат. – peterSO

Смежные вопросы