mtime

package
v0.5.1 Latest Latest
Warning

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

Go to latest
Published: Dec 13, 2025 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MillisPerSecond int64 = 1000
	MillisPerMinute int64 = 60 * MillisPerSecond
	MillisPerHour   int64 = 60 * MillisPerMinute
	MillisPerDay    int64 = 24 * MillisPerHour
)

MillisPer... 常量表示毫秒级别的时间长度,命名更语义化且便于直接使用。

View Source
const DefaultToken = "YYYY-MM-DD HH:mm:ss.SSSSSS ±HH:MM"

默认的 token 风格格式

Variables

View Source
var (
	LaySP_ss = "2006-01-02 15:04:05"
	LaySP_s  = "2006-1-2 15:4:5"

	Lay_ss = "2006-01-02T15:04:05"
	Lay_s  = "2006-1-2T15:4:5"
	Lay_DD = "2006-01-02"
	Lay_D  = "2006-1-2"
	Lay_MM = "2006-01"
	Lay_M  = "2006-1"
	Lay_Y  = "2006"
)
View Source
var UnixTime = UnixTimeType{
	Seconds: "1000",
	Minute:  "60000",
	Hour:    "3600000",
	Day:     "86400000",
}

毫秒数

View Source
var UnixTimeInt64 = UnixTimeInt64Type{
	Seconds: 1000,
	Minute:  60000,
	Hour:    3600000,
	Day:     86400000,
}

Functions

func Age added in v0.2.2

func Age(birthDay string) int

func DefaultLocation

func DefaultLocation() *time.Location

DefaultLocation 返回当前默认时区(用于数值时间戳解析),默认 UTC。

func FormatDefaultFrom

func FormatDefaultFrom(v any) string

FormatDefaultFrom 将任意支持的输入解析并格式化为默认时间字符串 "YYYY-MM-DDTHH:mm:ss"。 解析失败时返回 epoch 的默认格式化字符串以保持向后兼容。

func GetUnix added in v0.5.1

func GetUnix() string

获取 13 位毫秒时间戳

func GetUnixInt64 added in v0.5.1

func GetUnixInt64() int64

func MsToTime added in v0.5.1

func MsToTime(ms any, diff string) time.Time

func NowDefaultString

func NowDefaultString() string

NowDefaultString 直接返回当前时间的默认格式字符串 "YYYY-MM-DDTHH:mm:ss" 例如: 2020-01-02T15:04:05

func NowUnixMilli

func NowUnixMilli() int64

NowUnixMilli 返回当前时间的毫秒时间戳(13 位)

func ParseToStd added in v0.2.1

func ParseToStd(v any) *time.Time

ParseToStd 解析任意支持的输入并直接返回标准库的 *time.Time 指针。 该函数是对 Parse 的便捷包装:解析成功时返回底层 time.Time 的指针,解析失败时返回 nil(不返回 error)。 注意:返回的 *time.Time 指针指向函数内部包装的 time 值的拷贝,调用方可安全使用。

func ParseToTimeWithMillisOffset

func ParseToTimeWithMillisOffset(v any, offsetMillis int64) time.Time

ParseToTimeWithMillisOffset 解析任意支持的输入为 time.Time,并在结果上加上以毫秒为单位的偏移量。 参数: - v: 支持 Parse 接受的任意类型(string/数字/浮点等)。 - offsetMillis: 以毫秒为单位的偏移量,可以为负、正或 0。 返回值: - 解析并加上偏移后的 time.Time。 行为说明: - 解析失败时为保持向后兼容,返回 Parse(0) 的结果(即 epoch 对应的 time.Time)。

func SetDefaultLocation

func SetDefaultLocation(loc *time.Location)

SetDefaultLocation 设置数字时间戳解析后的默认时区,传入 nil 恢复为 UTC。

func TimeParse added in v0.5.1

func TimeParse(layout, val string) (resData int64)

2020-12-03 转为 时间戳 m_time.TimeParse(m_time.LaySP_ss, "2023-05-06 18:56:43")

func ToUnixMsec added in v0.5.1

func ToUnixMsec(ms time.Time) int64

将时间对象转为毫秒

func UnixFormat added in v0.5.1

func UnixFormat(ms any) string

ms=string | int64 毫秒数 return = 2006-01-02T15:04:05

Types

type GetTimeReturnType added in v0.5.1

type GetTimeReturnType struct {
	TimeUnix int64  `bson:"TimeUnix"`
	TimeStr  string `bson:"TimeStr"`
}

func GetTime added in v0.5.1

func GetTime() (resData GetTimeReturnType)

type MTime added in v0.2.1

type MTime struct {
	// contains filtered or unexported fields
}

MTime 是对 time.Time 的轻量封装,便于链式调用(原名 Time,已重命名以避免与标准库名冲突)。

func FromStdPtr added in v0.2.3

func FromStdPtr(tt *time.Time) MTime

FromStdPtr 将标准库的 *time.Time 转换为本包的 MTime。 - 如果传入为 nil,返回零值 MTime(即封装的 time.Time 为零值)。 示例:

mt := mtime.FromStdPtr(&time.Now())
if mt.IsZero() { ... }

func FromTime

func FromTime(tt time.Time) MTime

FromTime 包装一个标准 time.Time 为本包的 MTime 类型,方便链式调用。

func MustParse

func MustParse(v any) MTime

MustParse 是 Parse 的便捷包装:解析失败时返回零值 Time(不再 panic)。 建议在需要明确错误处理的场景使用 Parse,并避免依赖 MustParse 隐式吞错。

func Now

func Now() MTime

Now 返回当前时间的封装

func Parse

func Parse(v any) (MTime, error)

Parse 尝试从任意支持的类型解析为 Time: 支持 string、整型、无符号整型、浮点型等。对于不能直接识别的类型,会使用 fmt.Sprintf 作为后备并尝试按数字或字符串解析。 返回解析结果或错误。

func ParseFloat64

func ParseFloat64(f float64) (MTime, error)

ParseFloat64 按带小数的秒数解析为 Time(小数部分表示秒的小数部分)。 示例:ParseFloat64(1609459200.123) 表示秒 + 小数秒

func ParseInt64

func ParseInt64(n int64) (MTime, error)

ParseInt64 按整数时间戳解析并返回 Time。函数会根据数字位数自动判断单位(秒/毫秒/微秒/纳秒)。 示例:ParseInt64(1609459200000) // 13 位毫秒

func ParseString

func ParseString(s string) (MTime, error)

Parse 接受多种输入并尝试解析为时间: 支持: - string(任意可被 dateparse 识别的格式) - 数字字符串(表示秒/毫秒/微秒/纳秒 时间戳) - 整数类型/无符号整数/浮点数(表示秒或带小数的秒) 示例:

Parse("2020-01-02 15:04:05")
Parse(1609459200000)           // 13 位毫秒时间戳
Parse("1609459200000")       // 数字字符串(毫秒)
Parse(1609459200.123)         // 带小数的秒

ParseString 解析字符串为 Time: - 如果字符串为纯数字(可带小数点、可有正负号),优先按时间戳解析(自动识别秒/毫秒/微秒/纳秒/带小数秒) - 否则使用第三方解析器尝试解析任意常见时间格式 返回解析后的 Time 或解析错误。

func (MTime) Add added in v0.2.1

func (t MTime) Add(d time.Duration) MTime

Add 返回在当前 Time 上加上指定的 duration 后的新 Time(不修改原值)。

func (MTime) AddDays added in v0.2.1

func (t MTime) AddDays(days int) MTime

AddDays 在当前 Time 上增加指定天数(整天)。

func (MTime) AddHours added in v0.2.1

func (t MTime) AddHours(h int) MTime

AddHours 在当前 Time 上增加指定小时数(整小时)。

func (MTime) Diff added in v0.2.1

func (t MTime) Diff(o MTime) time.Duration

Diff 返回 t - o 的 duration(time.Duration)。

func (MTime) EndOfDay added in v0.2.1

func (t MTime) EndOfDay() MTime

EndOfDay 返回当前时间对应日期的末时刻(23:59:59.999999),精度到微秒,保留原时区。

func (MTime) Format added in v0.2.1

func (t MTime) Format(token string) string

Format 使用自定义 token 或默认 token 将 Time 格式化为字符串: - 传入空字符串或 DefaultToken 使用默认格式 - 传入类似 "YYYY-MM-DD HH:mm:ss" 的 token,将被映射为 Go 的 layout 进行格式化

func (MTime) FormatDefault added in v0.2.1

func (t MTime) FormatDefault() string

FormatDefault 返回默认的无参数格式化,格式为 "YYYY-MM-DDTHH:mm:ss" 例如: 2020-01-02T15:04:05

func (MTime) IsSameDay added in v0.2.1

func (t MTime) IsSameDay(o MTime) bool

IsSameDay 判断两个 Time 是否处于同一日期(按各自时区的年月日判断)。

func (MTime) Local added in v0.2.1

func (t MTime) Local() MTime

Local 返回转换为本地时区的新 Time。

func (MTime) StartOfDay added in v0.2.1

func (t MTime) StartOfDay() MTime

StartOfDay 返回当前时间对应日期的 00:00:00(同一时区)。

func (MTime) String added in v0.2.1

func (t MTime) String() string

String 实现 fmt.Stringer,等价于使用默认 token 的 Format。

func (MTime) ToTime added in v0.2.1

func (t MTime) ToTime() time.Time

ToTime 返回底层的标准 time.Time。

func (MTime) UTC added in v0.2.1

func (t MTime) UTC() MTime

UTC 返回转换为 UTC 时区的新 Time。

func (MTime) Unix added in v0.2.1

func (t MTime) Unix() int64

Unix 返回秒级时间戳(等价于 time.Time.Unix)。

func (MTime) UnixMilli added in v0.2.1

func (t MTime) UnixMilli() int64

UnixMilli 返回以毫秒为单位的时间戳(13 位)

func (MTime) UnixNano added in v0.2.1

func (t MTime) UnixNano() int64

UnixNano 返回纳秒级时间戳(等价于 time.Time.UnixNano)。

type UnixTimeInt64Type added in v0.5.1

type UnixTimeInt64Type struct {
	Seconds int64 `bson:"Seconds"`
	Minute  int64 `bson:"Minute"`
	Hour    int64 `bson:"Hour"`
	Day     int64 `bson:"Day"`
}

type UnixTimeType added in v0.5.1

type UnixTimeType struct {
	Seconds string `bson:"Seconds"`
	Minute  string `bson:"Minute"`
	Hour    string `bson:"Hour"`
	Day     string `bson:"Day"`
}

Jump to

Keyboard shortcuts

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