如果你指的是日数,那么它通常从1到365(或闰年为366)。因为只有这样,2021年的第35天才对应于2021-02-04。


只是使用时间。日期,它将正确转换超出范围的参数:day


月、日、小时、分钟、秒和 nsec 值可能超出其通常范围,并将在转换过程中进行规范化。例如,10 月 32 日转换为 11 月 1 日。


例:


package main


import (

    "fmt"

    "time"

)


func main() {

    year, day := 2021, 35

    dt := time.Date(year, 1, day, 0, 0, 0, 0, time.Local)

    fmt.Println(dt.Format("2006-01-02"))

}


指纹:


2021-02-04

如果你实际上指的是日数0到364(或365表示闰年),那么请改为:dayday+1


    dt := time.Date(year, 1, day+1, 0, 0, 0, 0, time.Local)