You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by lo...@apache.org on 2022/05/06 19:59:44 UTC
[beam] branch master updated: [BEAM-13988] Update mtime to use time.UnixMilli() calls (#17578)
This is an automated email from the ASF dual-hosted git repository.
lostluck pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/beam.git
The following commit(s) were added to refs/heads/master by this push:
new f1f26f10698 [BEAM-13988] Update mtime to use time.UnixMilli() calls (#17578)
f1f26f10698 is described below
commit f1f26f1069891ea15eaf6aaa90d683b53c4ae340
Author: Jack McCluskey <34...@users.noreply.github.com>
AuthorDate: Fri May 6 15:59:37 2022 -0400
[BEAM-13988] Update mtime to use time.UnixMilli() calls (#17578)
---
sdks/go/pkg/beam/core/graph/mtime/time.go | 6 +--
sdks/go/pkg/beam/core/graph/mtime/time_test.go | 54 ++++++++++++++++++++++++++
2 files changed, 56 insertions(+), 4 deletions(-)
diff --git a/sdks/go/pkg/beam/core/graph/mtime/time.go b/sdks/go/pkg/beam/core/graph/mtime/time.go
index 33d858d0fb7..26a3dab66a4 100644
--- a/sdks/go/pkg/beam/core/graph/mtime/time.go
+++ b/sdks/go/pkg/beam/core/graph/mtime/time.go
@@ -65,8 +65,7 @@ func FromDuration(d time.Duration) Time {
// FromTime returns a milli-second precision timestamp from a time.Time.
func FromTime(t time.Time) Time {
- // TODO(BEAM-13988): Replace t.UnixNano() with t.UnixMilli() for Go 1.17 or higher.
- return Normalize(Time(t.UnixNano() / 1e6))
+ return Normalize(Time(t.UnixMilli()))
}
// Milliseconds returns the number of milli-seconds since the Unix epoch.
@@ -76,8 +75,7 @@ func (t Time) Milliseconds() int64 {
// ToTime returns the Time represented as a time.Time
func (t Time) ToTime() time.Time {
- // TODO(BEAM-13988): Replace with time.UnixMilli(int64(t)).UTC() for Go 1.17 or higher.
- return time.Unix(0, int64(t)*1e6).UTC()
+ return time.UnixMilli(int64(t)).UTC()
}
// Add returns the time plus the duration. Input Durations of less than one
diff --git a/sdks/go/pkg/beam/core/graph/mtime/time_test.go b/sdks/go/pkg/beam/core/graph/mtime/time_test.go
index e2f914686c4..26e2289172d 100644
--- a/sdks/go/pkg/beam/core/graph/mtime/time_test.go
+++ b/sdks/go/pkg/beam/core/graph/mtime/time_test.go
@@ -244,3 +244,57 @@ func TestToTime(t *testing.T) {
})
}
}
+
+func TestMilliseconds(t *testing.T) {
+ tests := []struct {
+ name string
+ inputMillis int64
+ }{
+ {
+ "Zero",
+ int64(0),
+ },
+ {
+ "End of Global Window",
+ EndOfGlobalWindowTime.Milliseconds(),
+ },
+ {
+ "some number",
+ int64(1000),
+ },
+ }
+ for _, test := range tests {
+ milliTime := FromMilliseconds(test.inputMillis)
+ outputMillis := milliTime.Milliseconds()
+ if got, want := outputMillis, test.inputMillis; got != want {
+ t.Errorf("got %v milliseconds, want %v milliseconds", got, want)
+ }
+ }
+}
+
+func TestFromDuration(t *testing.T) {
+ tests := []struct {
+ name string
+ dur time.Duration
+ }{
+ {
+ "zero",
+ 0 * time.Millisecond,
+ },
+ {
+ "End of Global Window",
+ time.Duration(EndOfGlobalWindowTime),
+ },
+ {
+ "day",
+ 24 * time.Hour,
+ },
+ }
+ for _, test := range tests {
+ durTime := FromDuration(test.dur)
+ timeMillis := durTime.Milliseconds()
+ if got, want := timeMillis, test.dur.Milliseconds(); got != want {
+ t.Errorf("got %v milliseconds, want %v milliseconds", got, want)
+ }
+ }
+}