我想获得一个日期时间,从日期开始计算周数,从一周开始计算天数,从 00:00 时间开始计算秒数。使用 Python 我可以使用这个:BASE_TIME = datetime.datetime(1980,1,6,0,0)tdelta = datetime.timedelta(weeks = 1722, days = 1, seconds = 66355)mydate = BASE_DATE + tdelta我正在尝试使用 Go 来实现它,但我在实现它时遇到了一些问题:package mainimport ( "fmt" "time")var base = time.Date(1980, 1, 6, 0, 0, 0, 0, time.UTC)func main() { weeks := 1722 days := 1 seconds := 66355 weeksToSecs := 7 * 24 * 60 * 60 daysToSecs := 24 * 60 * 60 totalSecs := (weeks * weeksToSecs) + (days * daysToSecs) + seconds nanosecs := int64(totalSecs) * 1000000000 //delta := time.Date(0, 0, 0, 0, 0, totalSecs, 0, time.UTC) date := base.Add(nanosecs) fmt.Printf("Result: %s", date)}prog.go:21:不能在函数参数中使用纳秒(int64 类型)作为 time.Duration 类型http://play.golang.org/p/XWSK_QaXrQ我缺少什么?
3 回答
慕桂英3389331
TA贡献2036条经验 获得超8个赞
jnml 的答案有效,而且更符合习惯。但是为了说明为什么您的原始代码不起作用,您所要做的就是更改一行。
date := base.Add(time.Duration(nanosecs))
会将纳秒转换为 time.Duration,这是 Add 期望的类型,而不是 int64。Go 不会自动为你转换类型,所以它抱怨类型是 int64。
- 3 回答
- 0 关注
- 213 浏览
添加回答
举报
0/150
提交
取消