如何解决Golang中“日期调用中缺少位置”的错误

时间:2018-10-31 06:23:36

标签: go

我编写了一个golang程序来生成不同位置的月份的开始日期和结束日期

if month != "" && year != "" {
    var monthInt, _ = strconv.Atoi(month)
    var yearInt, _ = strconv.Atoi(year)
    timeZone, err := time.LoadLocation("America/Pheonix")
    if err != nil {
        fmt.Println(err)// nil
    }
    // currentLocation := time.Now().Location(timeZone) // when I use this it will works 
    // both are of same type 
    fmt.Println(reflect.TypeOf(timeZone))
    fmt.Println(reflect.TypeOf(time.UTC))
    firstOfMonth := time.Date(yearInt, time.Month(monthInt), 1, 0, 0, 0, 0, timeZone)
    onlyStartDate := strings.Split(firstOfMonth.Format("2006-01-02 00:00:00 -0000"), " ")
    lastOfMonth := firstOfMonth.AddDate(0, 1, -1).Format("2006-01-02 00:00:00 -0000")
    onlyLastDate := strings.Split(lastOfMonth, " ")
    merchantDb.GetProvidersOfTheMonth(onlyStartDate[0], onlyLastDate[0])
}

但是当我运行这段代码时,它将给我以下错误:-

  

时间:调用日期时缺少位置

为什么会产生此错误?我将如何解决该错误?

请提出任何建议!

1 个答案:

答案 0 :(得分:1)

应为America/Phoenix,而不是America/Pheonix

timeZone, _ := time.LoadLocation("America/Phoenix")

有关可用时区字符串列表的更多信息,请参见:https://golang.org/src/time/zoneinfo_abbrs_windows.go