beam: Index | Files

package mtime

import ""

Package mtime contains a millisecond representation of time. The purpose of this representation is alignment with the Beam specification, where we need extreme values outside the range of time.Time for windowing.


Package Files


type Time Uses

type Time int64

Time is the number of milli-seconds since the Unix epoch. The valid range of times is bounded by what can be represented a _micro_-seconds-since-epoch.

const (
    // MinTimestamp is the minimum value for any Beam timestamp. Often referred to
    // as "-infinity". This value and MaxTimestamp are chosen so that their
    // microseconds-since-epoch can be safely represented with an int64 and boundary
    // values can be represented correctly with millisecond precision.
    MinTimestamp Time = math.MinInt64 / 1000

    // MaxTimestamp is the maximum value for any Beam timestamp. Often referred to
    // as "+infinity".
    MaxTimestamp Time = math.MaxInt64 / 1000

    // EndOfGlobalWindowTime is the timestamp at the end of the global window. It
    // is a day before the max timestamp.
    // TODO Use GLOBAL_WINDOW_MAX_TIMESTAMP_MILLIS from the Runner API constants
    EndOfGlobalWindowTime = MaxTimestamp - 24*60*60*1000

    // ZeroTimestamp is the default zero value time. It corresponds to the unix epoch.
    ZeroTimestamp Time = 0

func FromDuration Uses

func FromDuration(d time.Duration) Time

FromDuration returns a timestamp from a time.Duration-since-epoch value.

func FromMilliseconds Uses

func FromMilliseconds(unixMilliseconds int64) Time

FromMilliseconds returns a timestamp from a raw milliseconds-since-epoch value.

func FromTime Uses

func FromTime(t time.Time) Time

FromTime returns a milli-second precision timestamp from a time.Time.

func Max Uses

func Max(a, b Time) Time

Max returns the largest (latest) time.

func Min Uses

func Min(a, b Time) Time

Min returns the smallest (earliest) time.

func Normalize Uses

func Normalize(t Time) Time

Normalize ensures a Time is within [MinTimestamp,MaxTimestamp].

func Now Uses

func Now() Time

Now returns the current time.

func (Time) Add Uses

func (t Time) Add(d time.Duration) Time

Add returns the time plus the duration.

func (Time) Milliseconds Uses

func (t Time) Milliseconds() int64

Milliseconds returns the number of milli-seconds since the Unix epoch.

func (Time) String Uses

func (t Time) String() string

func (Time) Subtract Uses

func (t Time) Subtract(d time.Duration) Time

Subtract returns the time minus the duration.

Package mtime imports 3 packages (graph) and is imported by 8 packages. Updated 2020-05-21. Refresh now. Tools for package owners.