如何在 Go 中解析日历周数



如何将包含年份和 iso 周日期的字符串转换为时间对象?

这就是我拥有的字符串的样子:2020-15,其中2020是年份,15是 iso 周数。理想情况下,我想获得一周的第一个可用时间戳(星期一午夜(。

我 https://golang.org/pkg/time/#Parse 通读了Parse()方法的文档,但我无法弄清楚如何提出考虑一周的参考时间的布局字符串。

你应该能够通过创建一个新的时间来快速绘制一些东西。指定年份1月1日的时间;将其提前到您想将其视为一周的规范开始的任何一天;然后向其添加 (7 * 周数( 天,例如:

t := time.Date(year, 1, 1, 0, 0, 0, 0, location)
offset := (t.Weekday() + 7 - weekStart) % 7
t = t.Add(time.Duration(offset*24) * time.Hour)
t = t.Add(time.Duration((week-1)*7*24) * time.Hour)

工作示例:https://play.golang.org/p/EjUpnRZRE6T

最新更新