如何在Go中解析日历周数[重复]。

问题描述 投票:0回答:1

我怎样才能将一个包含年份和iso周日期的字符串变成一个时间对象?

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

我阅读了文件中的 Parse() 这里的方法 https:/golang.orgpkgtime#Parse但是,我不知道如何用一个参考时间的布局字符串来考虑星期。

go time iso8601 date-parsing
1个回答
0
投票

你应该可以很快地自己画出一些东西,比如在指定年份的1月1日创建一个新的time.Time;把它提前到你想把它当作一周的标准开始的任何一天;然后添加(7 * weekNumber)天数。

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.orgpEjUpnRZRE6T

© www.soinside.com 2019 - 2024. All rights reserved.