Now - Go 时间处理库
now 是一个时间处理辅助库,提供了便捷的方法来计算本周、本月、本年等常用时间范围。掌握 now 可以简化时间相关的计算。
基础使用
📝 时间计算
package main
import (
"fmt"
"time"
"github.com/jinzhu/now"
)
func main() {
// 使用当前时间
t := time.Now()
// 本日开始
beginningOfDay := now.BeginningOfDay(t)
fmt.Println("Beginning of day:", beginningOfDay)
// 本日结束
endOfDay := now.EndOfDay(t)
fmt.Println("End of day:", endOfDay)
// 本周开始
beginningOfWeek := now.BeginningOfWeek(t)
fmt.Println("Beginning of week:", beginningOfWeek)
// 本周结束
endOfWeek := now.EndOfWeek(t)
fmt.Println("End of week:", endOfWeek)
// 本月开始
beginningOfMonth := now.BeginningOfMonth(t)
fmt.Println("Beginning of month:", beginningOfMonth)
// 本月结束
endOfMonth := now.EndOfMonth(t)
fmt.Println("End of month:", endOfMonth)
// 本年开始
beginningOfYear := now.BeginningOfYear(t)
fmt.Println("Beginning of year:", beginningOfYear)
// 本年结束
endOfYear := now.EndOfYear(t)
fmt.Println("End of year:", endOfYear)
}
自定义配置
📝 配置周起始日
package main
import (
"fmt"
"time"
"github.com/jinzhu/now"
)
func main() {
t := time.Now()
// 设置周起始日为周一 (默认)
now.WeekStartDay = time.Monday
fmt.Println("Week start Monday:", now.BeginningOfWeek(t))
// 设置周起始日为周日
now.WeekStartDay = time.Sunday
fmt.Println("Week start Sunday:", now.BeginningOfWeek(t))
// 使用 With 方法 (不影响全局)
n := now.With(t).Monday()
fmt.Println("This Monday:", n)
}
常用方法
📝 时间快捷方法
package main
import (
"fmt"
"time"
"github.com/jinzhu/now"
)
func main() {
t := time.Now()
n := now.With(t)
// 本周几
fmt.Println("Monday:", n.Monday())
fmt.Println("Sunday:", n.Sunday())
// 上下月
fmt.Println("Last month begin:", n.BeginningOfMonth().AddDate(0, -1, 0))
fmt.Println("Next month begin:", n.BeginningOfMonth().AddDate(0, 1, 0))
// 上下年
fmt.Println("Last year:", n.BeginningOfYear().AddDate(-1, 0, 0))
fmt.Println("Next year:", n.BeginningOfYear().AddDate(1, 0, 0))
// 昨天/明天
fmt.Println("Yesterday:", n.BeginningOfDay().AddDate(0, 0, -1))
fmt.Println("Tomorrow:", n.BeginningOfDay().AddDate(0, 0, 1))
}