给定一个时间对象,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