package mtime
import "github.com/apache/beam/sdks/v2/go/pkg/beam/core/graph/mtime"
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.
Index ¶
- type Time
- func FromDuration(d time.Duration) Time
- func FromMilliseconds(unixMilliseconds int64) Time
- func FromTime(t time.Time) Time
- func Max(a, b Time) Time
- func Min(a, b Time) Time
- func Normalize(t Time) Time
- func Now() Time
- func (t Time) Add(d time.Duration) Time
- func (t Time) Milliseconds() int64
- func (t Time) String() string
- func (t Time) Subtract(d time.Duration) Time
- func (t Time) ToTime() time.Time
Types ¶
type Time ¶
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(https://github.com/apache/beam/issues/18951) 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 ¶
FromDuration returns a timestamp from a time.Duration-since-epoch value.
func FromMilliseconds ¶
FromMilliseconds returns a timestamp from a raw milliseconds-since-epoch value.
func FromTime ¶
FromTime returns a milli-second precision timestamp from a time.Time.
func Max ¶
Max returns the largest (latest) time.
func Min ¶
Min returns the smallest (earliest) time.
func Normalize ¶
Normalize ensures a Time is within [MinTimestamp,MaxTimestamp].
func Now ¶
func Now() Time
Now returns the current time.
func (Time) Add ¶
Add returns the time plus the duration. Input Durations of less than one millisecond will not increment the time due to a loss of precision when converting to milliseconds.
func (Time) Milliseconds ¶
Milliseconds returns the number of milli-seconds since the Unix epoch.
func (Time) String ¶
func (Time) Subtract ¶
Subtract returns the time minus the duration. Input Durations of less than one millisecond will not increment the time due to a loss of precision when converting to milliseconds.
func (Time) ToTime ¶
ToTime returns the Time represented as a time.Time
Source Files ¶
- Version
- v2.66.0 (latest)
- Published
- Jun 23, 2025
- Platform
- linux/amd64
- Imports
- 3 packages
- Last checked
- 16 hours ago –
Tools for package owners.