goxkit

module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 19, 2026 License: Apache-2.0

README

goxkit

Go 常用工具库合集,提供时间处理、随机数生成、数据类型转换等轻量级扩展包。

安装

go get github.com/moon-ryan/goxkit

功能模块

包名 说明
timex 时间处理与格式化扩展
randx 随机数/随机字符串生成
convert 数据类型转换

timex

时间处理扩展包,封装常用日期时间计算与格式化方法。

常量
常量 格式
LayoutDate 2006-01-02
LayoutTime 15:04:05
LayoutDateTime 2006-01-02 15:04:05
LayoutISO8601 2006-01-02T15:04:05Z07:00
LayoutRFC3339 time.RFC3339
格式化
t := time.Now()
timex.FormatDate(t)     // 2026-07-19
timex.FormatTime(t)     // 10:30:00
timex.FormatDateTime(t) // 2026-07-19 10:30:00
timex.FormatISO8601(t)  // 2026-07-19T10:30:00+08:00
timex.WeekdayName(t)    // 周六
timex.WeekdayNameEN(t)  // Saturday
解析
t, err := timex.ParseDate("2026-07-19")
t, err = timex.ParseDateTime("2026-07-19 10:30:00")
t, err = timex.ParseISO8601("2026-07-19T10:30:00+08:00")
t = timex.MustParseDateTime("2026-07-19 10:30:00")

// 自动识别常见格式
t, err = timex.Parse("2026-07-19 10:30")
日期计算
now := time.Now()

timex.Today()
timex.Yesterday()
timex.Tomorrow()

timex.StartOfDay(now)
timex.EndOfDay(now)
timex.StartOfWeek(now)   // 本周一 00:00:00
timex.EndOfWeek(now)     // 本周日 23:59:59
timex.StartOfMonth(now)
timex.EndOfMonth(now)
timex.StartOfYear(now)
timex.EndOfYear(now)

timex.AddDays(now, 7)
timex.AddMonths(now, 1)
timex.AddYears(now, 1)

timex.NextMonday(now)
timex.PrevMonday(now)

timex.DaysInMonth(now)
timex.SubDays(t1, t2)
timex.Age(birthDate)
判断
timex.IsWeekend(t)
timex.IsToday(t)
timex.IsMonday(t)
timex.IsTuesday(t)
timex.IsWednesday(t)
timex.IsThursday(t)
timex.IsFriday(t)
timex.IsSaturday(t)
timex.IsSunday(t)
timex.Between(t, start, end)
时间戳
timex.Timestamp(t)
timex.TimestampMilli(t)

randx

随机数生成工具包,基于标准库 math/rand

randx.Int(100)              // [0, 100)
randx.IntRange(10, 20)      // [10, 20)
randx.Float64()             // [0.0, 1.0)
randx.Bool()                // true / false

randx.String(10)            // 10 位随机字母数字字符串
randx.StringWithCharset(8, "abc")
randx.Hex(4)                // 8 位十六进制字符串

randx.Choice([]int{1,2,3})  // 随机返回一个元素

s := []int{1,2,3,4,5}
randx.Shuffle(s)            // 原地打乱切片

convert

数据类型转换工具包,支持任意类型到常见类型的安全转换。

convert.ToString(v)

n, err := convert.ToInt(v)
n, err := convert.ToInt64(v)
f, err := convert.ToFloat64(v)
b, err := convert.ToBool(v)

convert.MustToInt(v)
convert.MustToInt64(v)
convert.MustToFloat64(v)
convert.MustToBool(v)

测试

go test ./...

Directories

Path Synopsis
Package convert 数据类型转换
Package convert 数据类型转换
Package randx 随机数生成
Package randx 随机数生成
Package timex 时间扩展
Package timex 时间扩展

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL