主要的内容是将 time.Time 按照不同的使用场景细分为 LocalDate LocalTime LocalDateTime OffsetDateTime 以及将来会有的 ZonedDateTime 等,将类型安全进行到底 xD 。
设计上尽量仿照 JSR-310 ,毕竟这个切分类型的思想也源自 JSR-310 。参考:threeten.org
对于某些可做出不同决策且个人不认为有明确优劣之分的设计,原则上遵守 JSR-310 习惯。
此外:
time.Location 抽象,自行携带时区数据库基础设施显得过于笨重,目前还在考虑具体解决方案。此外因为大部分对标 ZonedDateTime 的操作均可通过 Go 标准库的 time.Time 完成,所以这个部分可能优先级不高。IsZero() 判定,可放心使用 omitzero 标记。目前主要功能部分还剩下 Period Duration 以及时区相关等尚未完成,后续会尽量补全。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.