2 回答

TA貢獻1829條經驗 獲得超9個贊
標準庫中沒有 API,但是有一個 3rd 方庫可以將 ISO 8601 持續時間添加到time.Time:https ://godoc.org/github.com/senseyeio/duration#Duration.Shift 。
ISO 8601 持續時間一般不能轉換為 a time.Duration,因為它取決于基數time.Time。
https://play.golang.org/p/guybDGoJVrT
package main
import (
"fmt"
"time"
"github.com/senseyeio/duration"
)
func main() {
d, _ := duration.ParseISO8601("P1D")
today := time.Now()
tomorrow := d.Shift(today)
fmt.Println(today.Format("Jan _2")) // Nov 11
fmt.Println(tomorrow.Format("Jan _2")) // Nov 12
}

TA貢獻1805條經驗 獲得超9個贊
發現現有的解決方案不太令人滿意,我創建了自己的模塊來解析 ISO 8601 持續時間并將它們直接轉換為time.Duration
. 希望對你有幫助。:)
示例用法:https ://go.dev/play/p/Nz5akjy1c6W
- 2 回答
- 0 關注
- 286 瀏覽
添加回答
舉報