README

epoch

Mentioned in Awesome Go Godoc Reference build codecov goreportcard

Contains primitives for marshaling/unmarshaling Unix timestamp/epoch to/from build-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"
)

type Request struct {
	Timestamp epoch.Seconds `json:"timestamp"`
}

func main() {
	var v Request
	err := json.Unmarshal([]byte(`{"timestamp":1136239445}`), &v)
	if err != 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: 2006
	fmt.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"}

Documentation

Overview

    Package epoch contains primitives for marshaling/unmarshaling Unix timestamp/epoch to/from build-in time.Time type in JSON.

    Index

    Examples

    Constants

    This section is empty.

    Variables

    This section is empty.

    Functions

    This section is empty.

    Types

    type Milliseconds

    type Milliseconds struct {
    	time.Time
    }

      Milliseconds - same as epoch.Seconds, but for Epoch(Unix time) in milliseconds.

      func NewMilliseconds

      func NewMilliseconds(t time.Time) Milliseconds

        NewMilliseconds - returns Milliseconds

        func (Milliseconds) MarshalJSON

        func (m Milliseconds) MarshalJSON() ([]byte, error)

          MarshalJSON - implements JSON marshaling interface

          func (*Milliseconds) UnmarshalJSON

          func (m *Milliseconds) UnmarshalJSON(data []byte) error

            UnmarshalJSON - implements JSON unmarshaling interface

            type Seconds

            type Seconds struct {
            	time.Time
            }

              Seconds - seconds since the Epoch(Unix time). 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).

              Example
              Output:
              
              2006
              2006-01-02 22:04:05 +0000 UTC
              

              func NewSeconds

              func NewSeconds(t time.Time) Seconds

                NewSeconds - returns Seconds

                func (Seconds) MarshalJSON

                func (s Seconds) MarshalJSON() ([]byte, error)

                  MarshalJSON - implements JSON marshaling interface

                  func (*Seconds) UnmarshalJSON

                  func (s *Seconds) UnmarshalJSON(data []byte) error

                    UnmarshalJSON - implements JSON unmarshaling interface

                    type StrMilliseconds

                    type StrMilliseconds struct {
                    	time.Time
                    }

                      StrMilliseconds - same as epoch.Milliseconds, but for strings.

                      func NewStrMilliseconds

                      func NewStrMilliseconds(t time.Time) StrMilliseconds

                        NewStrMilliseconds - returns Milliseconds

                        func (StrMilliseconds) MarshalJSON

                        func (m StrMilliseconds) MarshalJSON() ([]byte, error)

                          MarshalJSON - implements JSON marshaling interface

                          func (*StrMilliseconds) UnmarshalJSON

                          func (m *StrMilliseconds) UnmarshalJSON(data []byte) error

                            UnmarshalJSON - implements JSON unmarshaling interface

                            type StrSeconds

                            type StrSeconds struct {
                            	time.Time
                            }

                              StrSeconds - seconds since the Epoch(Unix time) as string. 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).

                              func NewStrSeconds

                              func NewStrSeconds(t time.Time) StrSeconds

                                NewStrSeconds - returns StrSeconds

                                func (StrSeconds) MarshalJSON

                                func (s StrSeconds) MarshalJSON() ([]byte, error)

                                  MarshalJSON - implements JSON marshaling interface

                                  func (*StrSeconds) UnmarshalJSON

                                  func (s *StrSeconds) UnmarshalJSON(data []byte) error

                                    UnmarshalJSON - implements JSON unmarshaling interface