diff --git a/tag.bat b/tag.bat index 3b87a99..7afa7a5 100644 --- a/tag.bat +++ b/tag.bat @@ -1,4 +1,4 @@ -git tag v1.1.21 +git tag v1.1.22 git tag bank_card/v1.1.5 git tag geoip/v1.1.5 diff --git a/timeutil/trans.go b/timeutil/trans.go index 60184a2..0abbf1f 100644 --- a/timeutil/trans.go +++ b/timeutil/trans.go @@ -48,6 +48,46 @@ func StringToUnixMilliInt64Ptr(tm *string) *int64 { return &unixTime } +// UnixMilliToTimePtr 毫秒时间戳 -> 时间 +func UnixMilliToTimePtr(tm *int64) *time.Time { + if tm == nil { + return nil + } + + unixMilli := time.UnixMilli(*tm) + return &unixMilli +} + +// TimeToUnixMilliInt64Ptr 时间 -> 毫秒时间戳 +func TimeToUnixMilliInt64Ptr(tm *time.Time) *int64 { + if tm == nil { + return nil + } + + unixTime := tm.UnixMilli() + return &unixTime +} + +// UnixSecondToTimePtr 秒时间戳 -> 时间 +func UnixSecondToTimePtr(tm *int64) *time.Time { + if tm == nil { + return nil + } + + unixMilli := time.Unix(*tm, 0) + return &unixMilli +} + +// TimeToUnixSecondInt64Ptr 时间 -> 秒时间戳 +func TimeToUnixSecondInt64Ptr(tm *time.Time) *int64 { + if tm == nil { + return nil + } + + unixTime := tm.Unix() + return &unixTime +} + // StringTimeToTime 时间字符串 -> 时间 func StringTimeToTime(str *string) *time.Time { if str == nil { diff --git a/timeutil/trans_test.go b/timeutil/trans_test.go index 66e2aa0..7b339a5 100644 --- a/timeutil/trans_test.go +++ b/timeutil/trans_test.go @@ -305,3 +305,51 @@ func TestDurationpbSecond(t *testing.T) { result = DurationpbSecond(nil) assert.Nil(t, result, "空输入应返回nil") } + +func TestUnixMilliToTimePtr(t *testing.T) { + // 测试有效输入 + now := time.Now().UnixMilli() + result := UnixMilliToTimePtr(&now) + assert.NotNil(t, result) + assert.Equal(t, time.UnixMilli(now), *result) + + // 测试空输入 + result = UnixMilliToTimePtr(nil) + assert.Nil(t, result) +} + +func TestTimeToUnixMilliInt64Ptr(t *testing.T) { + // 测试有效输入 + now := time.Now() + result := TimeToUnixMilliInt64Ptr(&now) + assert.NotNil(t, result) + assert.Equal(t, now.UnixMilli(), *result) + + // 测试空输入 + result = TimeToUnixMilliInt64Ptr(nil) + assert.Nil(t, result) +} + +func TestUnixSecondToTimePtr(t *testing.T) { + // 测试有效输入 + now := time.Now().Unix() + result := UnixSecondToTimePtr(&now) + assert.NotNil(t, result) + assert.Equal(t, time.Unix(now, 0), *result) + + // 测试空输入 + result = UnixSecondToTimePtr(nil) + assert.Nil(t, result) +} + +func TestTimeToUnixSecondInt64Ptr(t *testing.T) { + // 测试有效输入 + now := time.Now() + result := TimeToUnixSecondInt64Ptr(&now) + assert.NotNil(t, result) + assert.Equal(t, now.Unix(), *result) + + // 测试空输入 + result = TimeToUnixSecondInt64Ptr(nil) + assert.Nil(t, result) +}