看 Go 的时间库不顺眼很久了,所以从别的语言里抄了一个

1 天前
 iseki

主要的内容是将 time.Time 按照不同的使用场景细分为 LocalDate LocalTime LocalDateTime OffsetDateTime 以及将来会有的 ZonedDateTime 等,将类型安全进行到底 xD 。

设计上尽量仿照 JSR-310 ,毕竟这个切分类型的思想也源自 JSR-310 。参考:threeten.org

对于某些可做出不同决策且个人不认为有明确优劣之分的设计,原则上遵守 JSR-310 习惯。

此外:

目前主要功能部分还剩下 Period Duration 以及时区相关等尚未完成,后续会尽量补全。

项目地址: https://github.com/iseki0/goda

3369 次点击
所在节点    Go 编程语言
34 条回复
z1154505909
1 天前
@Baymaxbowen 做了一遍,我后端崽认输。都他妈是什么玩意
roundgis
1 天前
@Baymaxbowen 这个可以作为面试题
Baymaxbowen
1 天前
@roundgis 那我要干翻面试官
iseki
1 天前
提醒一下本 lib 是按照 Java 的语言提案 310 号编写的,该提案对应的功能已经在 Java8 时进入
Java 标准库 java.time 。
和 JavaScript 没有任何关系。
NewYear
1 天前
我们可以在 2026 年 0 月 1 日相聚……
iseki
1 天前
@NewYear 别吓我,我看一眼去
iseki
1 天前
@NewYear 我这有 guard ,这个事我还特别关注过啊
if month < January || month > December {
e = newError("month %d out of range", month)
RedisMasterNode
1 天前
说实话为什么要把 Java 那套带进来呢...= =不反对(毕竟辛苦开发的)但是不看好会有很多受众。

前面的人也回复过了 Go 里面已经有不少好用的开源时间/日期 Package ,https://github.com/dromara/carbon 就挺好用的。

不太看好这个能有人喜欢用。
iseki
1 天前
@RedisMasterNode 看了下 carbon ,确实很完善,但是缺了一些点刚好 JSR-310 的东西可以补上,所以就弄了。
zhady009
7 小时 25 分钟前
@RedisMasterNode 抄 jdk 没毛病好用的时间库,关注时区、关注时差、UTC 和本地时间每种场景都有
RedisMasterNode
5 小时 1 分钟前
@zhady009 这些难道不是都有吗...这不是最基础的吗
iseki
4 小时 7 分钟前
@RedisMasterNode 标准库没有,civil 有但是不全,不过勉强能用。carbon 看上去有,但实际上不一样的。
RedisMasterNode
3 小时 24 分钟前
@iseki 我会建议向高 star 仓库开 pr 而没有必要重新造一个全新的轮子
iseki
3 小时 22 分钟前
@RedisMasterNode civil 这个可以考虑,但是和 carbon 那种思路并不相同。所以选择干脆按照 JSR-310 开新的项目,一些取舍也不必纠结,比如隔壁贴讨论的 MinusMonth 语义什么的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1172149

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX