简介

在数据库查询的时候,经常需要获取当月的第一天或者最后一天来查询当月数据,进行统计。

在 Golang 中,可以直接使用time这个包进行时间处理,只要通过预算就可以获取当前月的第一天和最后一天。

代码

package main

import (
	"fmt"
	"time"
)

func main() {
	now := time.Now()
	firstDateTime := now.AddDate(0, 0, -now.Day()+1)
	firstDateZeroTime := time.Date(firstDateTime.Year(), firstDateTime.Month(), firstDateTime.Day(), 0, 0, 0, 0, firstDateTime.Location())
	fmt.Println("当前时间:", now)
	fmt.Println("第一天的时间:", firstDateTime)
	fmt.Println("第一天0点的时间:", firstDateZeroTime)
	fmt.Println("======================================")
	lastDateTime := now.AddDate(0, 1, -now.Day())
	lastDateZeroTime := time.Date(lastDateTime.Year(), lastDateTime.Month(), lastDateTime.Day(), 0, 0, 0, 0, firstDateTime.Location())
	fmt.Println("当前时间:", now)
	fmt.Println("最后一天的时间:", lastDateTime)
	fmt.Println("最后一天0点的时间:", lastDateZeroTime)
	fmt.Println("======================================")
}

总结

时间运算,在编程过程中也是经常遇到的。