now actually works right
This commit is contained in:
parent
f1397c40b1
commit
e36581f205
22
util.go
22
util.go
@ -70,16 +70,22 @@ func CopyFile(src, dst string) (err error) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func TimeFromUnixMilli(ms int64) time.Time {
|
const milliInSecond int64 = 1000
|
||||||
const millisInSecond = 1000
|
const microInSecond int64 = 1000000
|
||||||
const nsInSecond = 1000000
|
const nsInSecond int64 = 1000000000
|
||||||
return time.Unix(ms/int64(millisInSecond), (ms%int64(millisInSecond))*int64(nsInSecond))
|
|
||||||
|
func TimeFromUnixMilli(input int64) time.Time {
|
||||||
|
var wholeSeconds int64 = input / milliInSecond
|
||||||
|
var remainderMillis int64 = input - (wholeSeconds * milliInSecond)
|
||||||
|
var remainderNano int64 = remainderMillis * 1000000
|
||||||
|
return time.Unix(wholeSeconds, remainderNano)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TimeFromUnixMicro(ms int64) time.Time {
|
func TimeFromUnixMicro(input int64) time.Time {
|
||||||
const microInSecond = 1000000
|
var wholeSeconds int64 = input / microInSecond
|
||||||
const nsInSecond = 1000000
|
var remainderMicros int64 = input - (wholeSeconds * microInSecond)
|
||||||
return time.Unix(ms/int64(microInSecond), (ms%int64(microInSecond))*int64(nsInSecond))
|
var remainderNano int64 = remainderMicros * 1000
|
||||||
|
return time.Unix(wholeSeconds, remainderNano)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TimeFromWebKit(input int64) time.Time {
|
func TimeFromWebKit(input int64) time.Time {
|
||||||
|
51
util_test.go
Normal file
51
util_test.go
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
package goutil
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestFromUnixMilli(t *testing.T) {
|
||||||
|
ms := 1542810446506
|
||||||
|
ts := TimeFromUnixMilli(int64(ms))
|
||||||
|
if ts.UTC().String() != "2018-11-21 14:27:26.506 +0000 UTC" {
|
||||||
|
t.Errorf("Expected time to be '2018-11-21 14:27:26.506 +0000 UTC' got '%s'", ts.UTC().String())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestFromUnixMicro(t *testing.T) {
|
||||||
|
ms := 1542810446506000
|
||||||
|
ts := TimeFromUnixMicro(int64(ms))
|
||||||
|
if ts.UTC().String() != "2018-11-21 14:27:26.506 +0000 UTC" {
|
||||||
|
t.Errorf("Expected time to be '2018-11-21 14:27:26.506 +0000 UTC' got '%s'", ts.UTC().String())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestFromWebkit(t *testing.T) {
|
||||||
|
var wk int64 = 13245202142853170
|
||||||
|
ts := TimeFromWebKit(wk)
|
||||||
|
expected := "2020-09-21 22:49:02.85317 +0000 UTC"
|
||||||
|
if ts.UTC().String() != expected {
|
||||||
|
t.Errorf("Expected time to be '%s' got '%s'", expected, ts.UTC().String())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestNowUnixMicro(t *testing.T) {
|
||||||
|
now := time.Now()
|
||||||
|
nownano := now.UnixNano()
|
||||||
|
nowmicro := nownano / 1000
|
||||||
|
ts := TimeFromUnixMicro(nowmicro)
|
||||||
|
if ts.UTC().String() != now.UTC().String() {
|
||||||
|
t.Errorf("Expected '%s' got '%s'", now.UTC().String(), ts.UTC().String())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestNowUnixMilli(t *testing.T) {
|
||||||
|
now := time.Now()
|
||||||
|
nownano := now.UnixNano()
|
||||||
|
nowmilli := nownano / 1000000
|
||||||
|
ts := TimeFromUnixMilli(nowmilli)
|
||||||
|
if ts.UTC().Format(time.StampMilli) != now.UTC().Format(time.StampMilli) {
|
||||||
|
t.Errorf("Expected '%s' got '%s'", now.UTC().String(), ts.UTC().String())
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user