golang,go,博客,开源,编程
dromara/carbon
是一个用于 Go 语言的日期和时间处理库,类似于 github.com/golang-module/carbon
,它提供了比 Go 标准库 time
更加丰富的功能和更简便的 API。这个库能够帮助开发者更轻松地处理日期和时间的格式化、解析、计算、比较、时区转换等任务。
dromara/carbon
的设计理念是让日期和时间的处理更加简洁和灵活,并提供了许多实用的函数来减少开发时对时间的复杂操作。
你可以使用以下命令来安装 dromara/carbon
:
go get github.com/dromara/carbon
dromara/carbon
的主要功能和特点AddDays()
, SubDays()
等方法来方便地进行日期加减。package main
import (
"fmt"
"github.com/dromara/carbon"
)
func main() {
// 获取当前时间
now := carbon.Now()
fmt.Println("当前时间:", now)
}
package main
import (
"fmt"
"github.com/dromara/carbon"
)
func main() {
// 获取当前时间
now := carbon.Now()
// 自定义格式化
formatted := now.Format("Y-m-d H:i:s")
fmt.Println("格式化后的时间:", formatted)
}
package main
import (
"fmt"
"github.com/dromara/carbon"
)
func main() {
// 获取当前时间
now := carbon.Now()
// 当前时间加5天
newTime := now.AddDays(5)
fmt.Println("5天后的时间:", newTime)
// 当前时间减3小时
earlierTime := now.SubHours(3)
fmt.Println("3小时前的时间:", earlierTime)
}
package main
import (
"fmt"
"github.com/dromara/carbon"
)
func main() {
// 解析一个时间字符串
dateStr := "2025-01-07 10:30:00"
parsedTime, err := carbon.Parse(dateStr)
if err != nil {
fmt.Println("解析失败:", err)
return
}
fmt.Println("解析后的时间:", parsedTime)
}
dromara/carbon
也可以方便地获取当前时间和过去时间的差异,并以人类友好的格式表示(如:3 days ago
)。
package main
import (
"fmt"
"github.com/dromara/carbon"
)
func main() {
// 获取当前时间
now := carbon.Now()
// 获取3天前的时间
past := now.SubDays(3)
// 输出人类友好的时间差
fmt.Println("3天前:", past.DiffForHumans())
}
dromara/carbon
支持时区转换,能够将时间转换为不同的时区。
package main
import (
"fmt"
"github.com/dromara/carbon"
)
func main() {
// 获取当前时间并设置时区为 UTC
utcTime := carbon.Now().In("UTC")
fmt.Println("UTC时间:", utcTime)
// 获取当前时间并设置时区为上海
shanghaiTime := carbon.Now().In("Asia/Shanghai")
fmt.Println("上海时间:", shanghaiTime)
}
carbon.Now()
:获取当前时间carbon.Parse(string)
:从字符串解析时间carbon.Create(year, month, day, hour, minute, second)
:根据指定的年月日时分秒创建时间time.Format(format string)
:将时间格式化为指定的格式Y
(年), m
(月), d
(日), H
(小时), i
(分钟), s
(秒),D
(星期几)等。AddDays(n int)
:增加 n 天SubDays(n int)
:减少 n 天AddHours(n int)
:增加 n 小时SubHours(n int)
:减少 n 小时AddMinutes(n int)
:增加 n 分钟SubMinutes(n int)
:减少 n 分钟IsBefore(carbon.Time)
:当前时间是否在指定时间之前IsAfter(carbon.Time)
:当前时间是否在指定时间之后IsEqualTo(carbon.Time)
:当前时间是否等于指定时间In(timezone string)
:将时间转换为指定时区Timezone()
:获取当前时间的时区DiffForHumans()
:输出人类友好的时间差(如 "2 hours ago")DiffInDays()
、DiffInHours()
等:获取具体的时间差,以天、小时等单位表示dromara/carbon
是一个非常方便的 Go 语言库,用于处理日期和时间。它提供了许多增强功能,使得日期和时间的处理变得更加简洁和高效。它能够轻松处理时间的加减、时区转换、格式化以及解析等操作,避免了与标准库 time
打交道时的一些繁琐操作,适用于大多数日期时间处理需求。
如果你需要更方便的日期时间处理,且不想每次都手动处理复杂的时间计算与格式化,dromara/carbon
是一个非常好的选择。