我正在尝试使用GoLang根据时间戳获取周数。
ts是一个int64并已转换
tm := time.UTUnix(ts, 0)
year := tm.Year()
week_nb := ???
历史ts的使用:
生成ts := time.Now().UTC().Unix()
我将它发送到基于gRPC的服务器,服务器将其转换为周数和年份。
任何机构都知道将ts转换为星期数的人?时间库已经允许我获得年份而不是一周
由于
答案 0 :(得分:9)
import "time"
func (t Time) ISOWeek() (year, week int)
ISOWeek返回发生t的ISO 8601年和周数。 周数从1到53.年1月1日到1月3日可能属于 第n-1周的第52周或第53周,以及12月29日至12月31日可能属于第1周 年n + 1。
例如,
package main
import (
"fmt"
"time"
)
func main() {
tn := time.Now().UTC()
fmt.Println(tn)
year, week := tn.ISOWeek()
fmt.Println(year, week)
ts := time.Now().UTC().Unix()
tn = time.Unix(ts, 0)
fmt.Println(tn)
year, week = tn.ISOWeek()
fmt.Println(year, week)
}
游乐场:https://play.golang.org/p/CjfPscwYXf
输出:
2009-11-10 23:00:00 +0000 UTC
2009 46
2009-11-10 23:00:00 +0000 UTC
2009 46