3 回答

TA貢獻1803條經驗 獲得超6個贊
如果你指的是日數,那么它通常從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)

TA貢獻1812條經驗 獲得超5個贊
這樣做是這樣的:
package main
import (
"fmt"
"time"
)
func dayOfYear(year, days int) time.Time {
return time.Date(year, 1, 1+days, 0, 0, 0, 0, time.UTC)
}
func main() {
t := dayOfYear(2021, 35)
fmt.Println(t)
}
雖然,你的數學是關閉的,因為35天將是2月5日,因為一年從1月1日開始,而不是1月0日。
https://golang.org/pkg/time#Date

TA貢獻1847條經驗 獲得超11個贊
這可能是您要查找的內容,請確保將區域替換為需要顯示時間字符串的區域。
package main
import (
"fmt"
"time"
)
func main() {
var layout = "2006-01-02"
zone := time.UTC
year := 2021
day := 35
time := time.Date(year,1,day,0,0,0,0,zone)
converted := time.Format(layout)
fmt.Println(converted)
}
- 3 回答
- 0 關注
- 196 瀏覽
添加回答
舉報