英文:
why no location staff in golang time.Equal?
问题
在 http://golang.org/src/pkg/time/time.go 中,
62 // Equal 判断 t 和 u 是否表示相同的时间点。
63 // 即使两个时间在不同的时区,它们也可以是相等的。
64 // 例如,6:00 +0200 CEST 和 4:00 UTC 是相等的。
65 // 这种比较与使用 t == u 不同,后者还会比较时区。
66 func (t Time) Equal(u Time) bool {
67 return t.sec == u.sec && t.nsec == u.nsec
68 }
为什么它们不关心 t.loc 和 u.loc?
更新:
如果我有两台服务器(位于不同的地点),如何判断它们的时间是否完全相等?
英文:
at 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 }
why they do not care t.loc and u.loc?
update:
If I had 2 servers(different location)and how can I judge if their time is equal exactly?
答案1
得分: 10
一个Time
存储着一个UTC时间戳。这意味着它不依赖于位置。
时间6:00 +0200 CEST
和4:00 UTC
在UTC上具有相同的值。它们是同一时刻。
位置仅用于本地化表示这个时间。
根据文档:
> 以这种方式更改位置只会更改表示方式;它不会更改时间点。
英文:
a Time
stores an UTC timestamp. Which means it isn't dependant of the location.
The times 6:00 +0200 CEST
and 4:00 UTC
have the same value UTC. They are the exact same moment in time.
The location is used only for localized representation of this time.
From the documentation :
> Changing the location in this way changes only the presentation; it does not change the instant in time
答案2
得分: 4
t.sec
返回自公元1年1月1日00:00:00 UTC以来经过的秒数。n.nsec
指定了秒数中的非负纳秒偏移量。范围为[0, 999999999]。
这个UTC时间不依赖于地点。
英文:
t.sec
gives the the number of seconds elapsed since January 1, year 1 00:00:00 UTC.n.nsec
specifies a non-negative nanosecond offset within the second named by Seconds. (range [0, 999999999])
That UTC time doesn't depend on location.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论