为什么没有位置工作人员在golang time.Equal?

时间:2012-10-12 08:40:17

标签: go

http://golang.org/src/pkg/time/time.go

62  // Equal reports whether t and u represent the same time instant.
63  // Two times can be equal even if they are in different locations.
64  // For example, 6:00 +0200 CEST and 4:00 UTC are Equal.
65  // This comparison is different from using t == u, which also compares
66  // the locations.
67  func (t Time) Equal(u Time) bool {
68      return t.sec == u.sec && t.nsec == u.nsec
69  }

为什么他们不关心t.loc和u.loc?

更新: 如果我有2台服务器(不同的位置),我怎样才能判断它们的时间是否完全相同?

2 个答案:

答案 0 :(得分:10)

Time存储 UTC 时间戳。这意味着它不依赖于位置。

时间6:00 +0200 CEST4:00 UTC具有相同的UTC值。他们是完全相同的时刻。

该位置仅用于此时的本地化表示。

来自the documentation

  

以这种方式更改位置只会改变演示文稿;它不会及时改变

答案 1 :(得分:4)

  • t.sec给出自1月1日,1 00:00:00 UTC以来经过的秒数。
  • n.nsec指定Seconds中指定的非负纳秒偏移量。 (范围[0,999999999])

UTC time不依赖于位置。