构造日期golang时使用int作为月份

Mik*_*ike 8 go

当我提供for int作为参数时,它可以工作(例子):time.Datemonth

time.Date(2016, 1, 1, 0, 0, 0, 0, time.UTC)
Run Code Online (Sandbox Code Playgroud)

为什么,当我尝试将a转换stringint然后使用该变量时,我收到错误:

cannot use mStr (type int) as type time.Month in argument to time.Date
Run Code Online (Sandbox Code Playgroud)

示例:https://play.golang.org/p/-XFNZHK476

ama*_*el2 13

您必须将值转换为正确的类型:

import(
    "fmt" 
    "time" 
    "strconv"
) 

func main() {
    var m, _ = strconv.Atoi("01")
     // Now convert m to type time.Month 
    fmt.Println(time.Date(2016, time.Month(m), 1, 0, 0, 0, 0, time.UTC))
}
Run Code Online (Sandbox Code Playgroud)

您将其转换为类型int,但第二个参数time.Date()是类型,time.Month因此它会给您一个错误,您没有使用正确的类型.