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

17 小时 6 分钟前
 iseki

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

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

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

此外:

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

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

2483 次点击
所在节点    Go 编程语言
27 条回复
yb2313
12 小时 8 分钟前
别从 js 里抄就好
jjx
12 小时 0 分钟前
大部分代码使用 AI 完成

以后还是要小心点了 个人看法
Baymaxbowen
11 小时 41 分钟前
@yb2313 关于为啥不要在 js 抄
https://jsdate.wtf/
akiyamamio
11 小时 36 分钟前
gtime 就挺好用的了
sunmoon1983
11 小时 34 分钟前
感觉 carbon 和 gtime 都可以呀
apkapb
11 小时 32 分钟前
我怎么觉得做为自带的标准库已经够好用了,什么 Time{},Date(),以及 Duration ,完全够用了。

反倒是 Java 里面的,特别是结合 Android ,写得我难受死了
zoharSoul
11 小时 24 分钟前
很棒, 是不是支持 yyyy-MM-dd 这种表示法?
Ketteiron
11 小时 12 分钟前
go 的时间库确实没有大而全的,一旦需要用到只能东拼西凑
如果只需要 Local ,我会用
https://github.com/googleapis/google-cloud-go/blob/main/civil/civil.go
但也就只有 Local
iseki
10 小时 38 分钟前
@Baymaxbowen js 有了,js-joda
iseki
10 小时 36 分钟前
@Ketteiron civil 只提供了 LocalDate
iseki
10 小时 35 分钟前
@zoharSoul 暂时不提供自定义格式化功能,只提供标准格式,这个包主要用于运算和类型安全。考虑到 Go 的使用场景,在经典后端下,使用自定义格式化功能的地方,不多。
iseki
10 小时 31 分钟前
@sunmoon1983 和 carbon gtime 设计思路不同,他们都没有采用 310 建模。这两个库和 time.Time 在类型上没有区别。
iseki
10 小时 26 分钟前
@apkapb 那可能你不需要更严格的类型吧,JSR-310 把 r 日期时间划分了近 10 种类型,以应对不同场景。
oom
10 小时 21 分钟前
6 ,star 了
cooooing
10 小时 9 分钟前
@Baymaxbowen 生草,一个没答对
wangtian2020
10 小时 8 分钟前
看到前几个 go 帖子我就想说了,go 连 dayjs 抄都抄不像,js 几 kb 就能实现的事儿
encounter2017
10 小时 0 分钟前
不支持 format 好,要不然又会有 2006-01-02 15:04:05 手动狗头
iseki
9 小时 56 分钟前
@encounter2017 当然考虑到 JSR-310 包含这个功能,也许以后会支持上。
Ketteiron
7 小时 58 分钟前
@iseki #10 Date/Time/DateTime 都有。
只是性能不太行,功能也少。
iseki
7 小时 4 分钟前
@Ketteiron 确实,我没看见另外两个类型,疏忽了。总之我还是照着 JSR-310 抄吧。

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

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

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

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

© 2021 V2EX