我编写了一个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])
}
但是当我运行这段代码时,它将给我以下错误:-
时间:调用日期时缺少位置
为什么会产生此错误?我将如何解决该错误?
请提出任何建议!
答案 0 :(得分:1)
应为America/Phoenix
,而不是America/Pheonix
。
timeZone, _ := time.LoadLocation("America/Phoenix")
有关可用时区字符串列表的更多信息,请参见:https://golang.org/src/time/zoneinfo_abbrs_windows.go