慕娘9325324
您可以在 golang 本身中使用时间包。package mainimport ( "fmt" "time")func main() { t := time.Now() fmt.Println(BeginningOfMonth(t)) fmt.Println(EndOfMonth(t)) // If you need only date use Format(). But remember Format() will return as a string dateFormat := "2006-01-02" fmt.Println(BeginningOfMonth(t).Format(dateFormat)) fmt.Println(EndOfMonth(t).Format(dateFormat))}func BeginningOfMonth(t time.Time) time.Time { return time.Date(t.Year(), t.Month(), 1, 0, 0, 0, 0, t.Location())}func EndOfMonth(t time.Time) time.Time { return BeginningOfMonth(t).AddDate(0, 1, 0).Add(-time.Second)}输出:2018-10-01 00:00:00 +0530 实际2018-10-31 23:59:59 +0530 是2018-10-012018-10-31
绝地无双
例如,package mainimport ( "fmt" "time")func monthInterval(y int, m time.Month) (firstDay, lastDay time.Time) { firstDay = time.Date(y, m, 1, 0, 0, 0, 0, time.UTC) lastDay = time.Date(y, m+1, 1, 0, 0, 0, -1, time.UTC) return firstDay, lastDay}func main() { var ( y int m time.Month ) y, m, _ = time.Now().Date() first, last := monthInterval(y, m) fmt.Println(first.Format("2006-01-02")) fmt.Println(last.Format("2006-01-02")) y, m = 2018, time.Month(2) first, last = monthInterval(y, m) fmt.Println(first.Format("2006-01-02")) fmt.Println(last.Format("2006-01-02"))}输出:2018-10-012018-10-312018-02-012018-02-28游乐场:https://play.golang.org/p/TkzCo9jLpZR
白猪掌柜的
嗯,你只需要看看下面我为你写的代码,然后阅读评论并学习它。通过在 golang 中引用this和 this time 包:package mainimport ( "fmt" "strings" "time")func main() { var year int year = 2019 currentLocation := time.Now().Location() // got current location if year != 0 { firstOfMonth := time.Date(year, time.February, 1, 0, 0, 0, 0, currentLocation) // first date of the month fmt.Println(firstOfMonth) lastOfMonth := firstOfMonth.AddDate(0, 1, -1).Format("2006-01-02 00:00:00 -0000") // last date of the month fmt.Println(lastOfMonth) onlyDate := strings.Split(lastOfMonth, " ") fmt.Println(onlyDate[0]) } }已编辑package mainimport ( "fmt" "time")func main() { month := 1 fmt.Println(time.Month(month))}将 int month 转换为 time link playground