如何在Go中解析日历周数

如何在Go中解析日历周数,go,time,iso8601,date-parsing,Go,Time,Iso8601,Date Parsing,如何将包含年份和iso周日期的字符串转换为时间对象 这是我的字符串的样子:2020-15,其中2020是年份,15是iso周数。理想情况下,我希望获得一周的第一个可用时间戳(周一午夜) 我在这里通读了Parse()方法的文档,但我不知道如何得出一个参考时间的布局字符串,其中考虑了一周。通过创建一个新的时间,你应该能够很快地自己画出一些东西;把它提前到你想作为一周的正式开始的任何一天;然后向其添加(7*周数)天,例如: t := time.Date(year, 1, 1, 0, 0, 0, 0,

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

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


我在这里通读了
Parse()
方法的文档,但我不知道如何得出一个参考时间的布局字符串,其中考虑了一周。

通过创建一个新的时间,你应该能够很快地自己画出一些东西;把它提前到你想作为一周的正式开始的任何一天;然后向其添加(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)

工作示例:

不受
时间
包支持。通过在指定年份的1月1日创建一个新的
时间
,您应该能够很快地自己绘制一些东西;把它提前到你想作为一周的正式开始的任何一天;然后再加上(7*weekNumber)天。