You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Contains primitives for marshaling/unmarshaling Unix timestamp/epoch to/from built-in time.Time type in JSON.
Seconds
Seconds since the Epoch(Unix time), e.g.:
{"timestamp":1136239445}
Inherits built-in time.Time type, thus has all it methods, but has custom serializer and
deserializer(converts integer into built-in time.Time and vice versa).
Usage Example
package main
import (
"encoding/json""fmt""github.com/vtopc/epoch"
)
typeRequeststruct {
Timestamp epoch.Seconds`json:"timestamp"`
}
funcmain() {
varvRequesterr:=json.Unmarshal([]byte(`{"timestamp":1136239445}`), &v)
iferr!=nil {
panic(err)
}
fmt.Printf("%+v\n", v)
// Output: {Timestamp:2006-01-03 00:04:05 +0200 EET}// Also as epoch.Seconds inherits all time.Time's methods one can do next:fmt.Println(v.Timestamp.Year())
// Output: 2006fmt.Println(v.Timestamp.UTC().String())
// Output: 2006-01-02 22:04:05 +0000 UTC
}
Milliseconds
Same as epoch.Seconds, but for Epoch(Unix time) in milliseconds, e.g.:
{"timestamp":1136239445999}
StrSeconds
Same as epoch.Seconds, but for strings, e.g.:
{"timestamp":"1136239445"}
StrMilliseconds
Same as epoch.Milliseconds, but for strings, e.g.:
{"timestamp":"1136239445999"}
FloatMS
Integer part of timestamp represents seconds and fractional - milliseconds since the Epoch(Unix time),
e.g.:
{"timestamp":1136239445.999}
Installation
go get github.com/vtopc/epoch@latest
This will update yours go.mod file.
Additional terms of use for users from russia and Belarus
By using the code provided in these repositories you agree with the following:
russia has brought sorrow and devastations to millions of Ukrainians, killed hundreds of innocent people, damaged thousands of buildings, and forced several million people to flee.