Documentation

Overview

Package time implement facilities for working with time.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Ceil

func Ceil(t time.Time, d time.Duration) time.Time

Ceil returns the result of rounding t up to a multiple of d since the zero time.

func DurationFromUnit

func DurationFromUnit(u Unit) (time.Duration, error)

DurationFromUnit creates a time duration from a time unit.

func FromNanoseconds

func FromNanoseconds(nsecs int64) time.Time

FromNanoseconds converts nanoseconds to a time.

func FromNormalizedDuration

func FromNormalizedDuration(nd int64, u time.Duration) time.Duration

FromNormalizedDuration returns the duration given the normalized time duration and a time unit.

func FromNormalizedTime

func FromNormalizedTime(nt int64, u time.Duration) time.Time

FromNormalizedTime returns the time given the normalized time units and the time unit.

func FromUnixMillis

func FromUnixMillis(ms int64) time.Time

FromUnixMillis converts milliseconds since Unix epoch to a time

func MaxTime

func MaxTime(t1, t2 time.Time) time.Time

MaxTime returns the later one of t1 and t2.

func MinTime

func MinTime(t1, t2 time.Time) time.Time

MinTime returns the earlier one of t1 and t2.

func ParseExtendedDuration

func ParseExtendedDuration(s string) (time.Duration, error)

ParseExtendedDuration parses a duration, with the ability to specify time units in days, weeks, months, and years.

func ToExtendedString

func ToExtendedString(d time.Duration) string

ToExtendedString converts a duration to an extended string.

func ToNanoseconds

func ToNanoseconds(t time.Time) int64

ToNanoseconds converts a time to nanoseconds.

func ToNormalizedDuration

func ToNormalizedDuration(d time.Duration, u time.Duration) int64

ToNormalizedDuration returns the normalized units of duration given a time unit.

func ToNormalizedTime

func ToNormalizedTime(t time.Time, u time.Duration) int64

ToNormalizedTime returns the normalized units of time given a time unit.

func ToUnixMillis

func ToUnixMillis(t time.Time) int64

ToUnixMillis converts a time to milliseconds since Unix epoch

func UnitCount

func UnitCount() int

UnitCount returns the total number of unit types.

Types

type Matcher

type Matcher interface {
	gomock.Matcher
}

Matcher is a gomock.Matcher that matches time.Time

func NewMatcher

func NewMatcher(t time.Time) Matcher

NewMatcher returns a new Matcher

type Range

type Range struct {
	Start time.Time
	End   time.Time
}

Range represents [start, end)

func (Range) After

func (r Range) After(other Range) bool

After determines whether r is after other.

func (Range) Before

func (r Range) Before(other Range) bool

Before determines whether r is before other.

func (Range) Contains

func (r Range) Contains(other Range) bool

Contains determines whether r contains other.

func (Range) Duration

func (r Range) Duration() time.Duration

Duration returns the duration of the range.

func (Range) Equal

func (r Range) Equal(other Range) bool

Equal returns whether two time ranges are equal.

func (Range) Intersect

func (r Range) Intersect(other Range) (Range, bool)

Intersect calculates the intersection of the receiver range against the provided argument range iff there is an overlap between the two. It also returns a bool indicating if there was a valid intersection.

func (Range) IsEmpty

func (r Range) IsEmpty() bool

IsEmpty returns whether the time range is empty.

func (Range) IterateBackward

func (r Range) IterateBackward(stepSize time.Duration, f func(t time.Time) (shouldContinue bool))

IterateBackward iterates through a time range by step size in the backwards direction.

func (Range) IterateForward

func (r Range) IterateForward(stepSize time.Duration, f func(t time.Time) (shouldContinue bool))

IterateForward iterates through a time range by step size in the forwards direction.

func (Range) Merge

func (r Range) Merge(other Range) Range

Merge merges the two ranges if they overlap. Otherwise, the gap between them is included.

func (Range) Overlaps

func (r Range) Overlaps(other Range) bool

Overlaps determines whether r overlaps with other.

func (Range) Since

func (r Range) Since(t time.Time) Range

Since returns the time range since a given point in time.

func (Range) String

func (r Range) String() string

String returns the string representation of the range.

func (Range) Subtract

func (r Range) Subtract(other Range) []Range

Subtract removes the intersection between r and other from r, possibly splitting r into two smaller ranges.

type RangeIter

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

RangeIter iterates over a collection of time ranges.

func (*RangeIter) Next

func (it *RangeIter) Next() bool

Next moves to the next item.

func (*RangeIter) Value

func (it *RangeIter) Value() Range

Value returns the current time range.

type Ranges

type Ranges interface {
	AddRange(Range)
	AddRanges(Ranges)
	RemoveRange(Range)
	RemoveRanges(Ranges)
	Overlaps(Range) bool
	Iter() *RangeIter
	Clone() Ranges
	Len() int
	IsEmpty() bool
	String() string
}

Ranges is a collection of time ranges.

func NewRanges

func NewRanges(in ...Range) Ranges

NewRanges constructs a new Ranges object comprising the provided ranges.

type Unit

type Unit uint16

Unit represents a time unit.

const (
	// None is a place holder for time units, it doesn't represent an actual time unit. The ordering
	// here is used for comparisons betweens units and should not be changed.
	None Unit = iota
	Second
	Millisecond
	Microsecond
	Nanosecond
	Minute
	Hour
	Day
	Year
)

Different time units that are supported.

func MaxUnitForDuration

func MaxUnitForDuration(d time.Duration) (int64, Unit)

MaxUnitForDuration determines the maximum unit for which the input duration is a multiple of.

func UnitFromDuration

func UnitFromDuration(d time.Duration) (Unit, error)

UnitFromDuration creates a time unit from a time duration.

func (Unit) Count

func (tu Unit) Count(d time.Duration) (int, error)

Count returns the number of units contained within the duration.

func (Unit) IsValid

func (tu Unit) IsValid() bool

IsValid returns whether the given time unit is valid / supported.

func (Unit) MustCount

func (tu Unit) MustCount(d time.Duration) int

MustCount is like Count but panics if d is negative or if tu is not a valid Unit.

func (Unit) String

func (tu Unit) String() string

String returns the string representation for the time unit

func (Unit) Validate

func (tu Unit) Validate() error

Validate will validate the time unit.

func (Unit) Value

func (tu Unit) Value() (time.Duration, error)

Value is the time duration of the time unit.

type UnixNano

type UnixNano int64

UnixNano is used to indicate that an int64 stores a unix timestamp at nanosecond resolution

func ToUnixNano

func ToUnixNano(t time.Time) UnixNano

ToUnixNano returns a UnixNano from a time.Time

func (UnixNano) After

func (u UnixNano) After(t UnixNano) bool

After reports whether the time instant u is after t.

func (UnixNano) Before

func (u UnixNano) Before(t UnixNano) bool

Before reports whether the time instant u is before t.

func (UnixNano) Equal

func (u UnixNano) Equal(t UnixNano) bool

Equal reports whether the time instant u is equal to t.

func (UnixNano) ToTime

func (u UnixNano) ToTime() time.Time

ToTime returns a time.ToTime from a UnixNano