gpt4 book ai didi

date - 在 Go/Golang 中获取当前月份的第一天和最后一天?

转载 作者:IT老高 更新时间:2023-10-28 13:04:56 34 4
gpt4 key购买 nike

我正在尝试获取当月的第一天和最后一天。您可以添加日期和时间,但不能添加月份,我想从下个月减去一天以获得本月的最后一天。像这样的:

package main

import (
"fmt"
"time"
)

func main() {

date := time.Now()
nextMonth := date.Add(time.Month)
LastDay := nextMonth.Add(-time.Hour * 24)

fmt.Println(LastDay)

}

最佳答案

time.Month 是一个类型,而不是一个值,所以你不能 Add 它。此外,您的逻辑是错误的,因为如果您添加一个月并减去一天,您不会得到月底,您会在下个月中旬得到一些东西。如果今天是 4 月 24 日,您将得到 5 月 23 日。

以下代码将满足您的需求:

package main

import (
"time"
"fmt"
)

func main() {
now := time.Now()
currentYear, currentMonth, _ := now.Date()
currentLocation := now.Location()

firstOfMonth := time.Date(currentYear, currentMonth, 1, 0, 0, 0, 0, currentLocation)
lastOfMonth := firstOfMonth.AddDate(0, 1, -1)

fmt.Println(firstOfMonth)
fmt.Println(lastOfMonth)
}

Playground link

关于date - 在 Go/Golang 中获取当前月份的第一天和最后一天?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36830212/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com