使用Go例如PT90M解析ISO 8601持续时间

问题描述

有没有简单的方法可以将ISO 8601字符串持续时间(P(n)Y(n)M(n)DT(n)H(n)M(n)S)转换为time.Duration

来自Wikipedia on ISO 8601 durations

例如,“ P3Y6M4DT12H30M5S”表示持续时间为“三年,六个月,四天,十二小时,三十分钟和五秒”。

解决方法

为此,标准库中没有API,但是有一个第三方库可以将ISO 8601持续时间添加到output.write()https://godoc.org/github.com/senseyeio/duration#Duration.Shift中。

ISO 8601持续时间通常不能转换为time.Time,因为它取决于基础time.Duration

https://play.golang.org/p/guybDGoJVrT

time.Time