Hasty Briefsbeta

双语

Handrolling ISO8601 Duration Support for Go

10 months ago
  • #ISO8601
  • #Go
  • #Parsing
  • 作者因缺乏合适的现有库而在Go中创建了一个自定义的ISO8601持续时间解析库。
  • ISO8601持续时间格式复杂,以'P'开头,包含年份(Y)、月份(M)、天数(D)、小时(H)、分钟(M)和秒(S)的标识符。
  • 现有的Go库要么不支持ISO8601持续时间,要么不符合规范要求。
  • 作者的go-iso8601-duration库通过实现有限状态机(FSM)来精确解析ISO8601持续时间。
  • 该FSM处理各种状态和转换以确保正确解析,包括对无效输入的容错处理。
  • 该库提供将ISO8601持续时间转换为Go的time.Duration类型的方法,并可应用于time.Time实例。
  • 通过大量测试确保符合ISO8601规范并处理边界情况。
  • 作者批评ISO尽管使用纳税人资金却未免费公开标准文档的行为。