情况:
当我调用Second()
,Year()
等时间函数时,我得到tye int
的结果。但是当我致电Month()
时,我会得到Month
类型的结果。
我在在线文档中找到了以下内容:
type Month int
...
func (m Month) String() string
..但我不太明白。
问题:
我的代码出现以下错误,因为m
不 int
:
无效操作:
m / time.Month(10) + offset
(不匹配类型time.Month和int)
问题:
如何从int
获取Month()
?
答案 0 :(得分:38)
考虑到:
var m time.Month
m
的底层类型为int
,因此它可以是converted到int
:
var i int = int(m) // normally written as 'i := int(m)'
旁注:问题显示分组“m / time.Month(10)
”。除非您想要计算一些 dekamonth 值,否则这可能是一个错误; - )
答案 1 :(得分:9)
答案 2 :(得分:1)
从技术上讲,这不是 int,但如果您尝试获取带有月份的字符串,例如 "2020-04-16"
(2020 年 4 月 16 日),您可以这样做:
t := time.Now()
fmt.Printf("%d-%02d-%02d", t.Year(), int(t.Month()), t.Day())