3 回答

TA貢獻1783條經(jīng)驗 獲得超4個贊
您可以在 golang 本身中使用時間包。
package main
import (
? ? "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-01
2018-10-31

TA貢獻1946條經(jīng)驗 獲得超4個贊
例如,
package main
import (
"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-01
2018-10-31
2018-02-01
2018-02-28
游樂場:https://play.golang.org/p/TkzCo9jLpZR

TA貢獻1893條經(jīng)驗 獲得超10個贊
嗯,你只需要看看下面我為你寫的代碼,然后閱讀評論并學(xué)習(xí)它。通過在 golang 中引用this和?this time 包:
package main
import (
?"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 main
import (
?"fmt"
?"time"
)
func main() {
?month := 1
?fmt.Println(time.Month(month))
}
將 int month 轉(zhuǎn)換為 time link playground
- 3 回答
- 0 關(guān)注
- 287 瀏覽
添加回答
舉報