从时间戳中获取一年的第一天和最后一天



给定一个时间对象,t := time.Now(),是否有一种方法可以获得该年的第一天和最后一天的时间戳?

我可以做像d := t.YearDay()这样的事情来获得一年中的天数,然后t.AddDate(0, 0, -d)得到一年的开始,t.AddDate(0, 0, 365-d)得到一年的结束,但这似乎很脆弱,因为它不处理闰年等。

您可以使用您的Time结构对象并使用Time创建新的Time结构对象。日期和时间。time. year()函数。因此,如果当前时间是t := time.Now(),那么UTC中今年的最后一天将是lt := time.Date(t.Year(), time.December, 31, 0, 0, 0, 0, time.UTC)

下面是一个例子:

package main
import "fmt"
import "time"
func main() {
    t := time.Now()
    last := time.Date(t.Year(), time.December,31, 0, 0, 0, 0, time.UTC)
    first := time.Date(t.Year(), time.January,1, 0, 0, 0, 0, time.UTC)
    fmt.Println("Current: ", t)
    fmt.Println("First: ", first)
    fmt.Println("Last: ", last)
}
http://play.golang.org/p/jahjd_mi6K

最新更新