Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/relvacode/iso8601
A fast ISO8601 date parser for Go
https://github.com/relvacode/iso8601
date datetime fast go golang iso8601 json parser performance time unmarshal
Last synced: about 2 months ago
JSON representation
A fast ISO8601 date parser for Go
- Host: GitHub
- URL: https://github.com/relvacode/iso8601
- Owner: relvacode
- License: mit
- Created: 2017-04-25T15:54:18.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-10-17T09:42:11.000Z (2 months ago)
- Last Synced: 2024-10-19T13:08:06.718Z (2 months ago)
- Topics: date, datetime, fast, go, golang, iso8601, json, parser, performance, time, unmarshal
- Language: Go
- Size: 32.2 KB
- Stars: 144
- Watchers: 5
- Forks: 16
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-go - iso8601 - Efficiently parse ISO8601 date-times without regex. (Date and Time / Search and Analytic Databases)
- awesome-go-extra - iso8601 - 04-25T15:54:18Z|2022-03-18T17:58:34Z| (Date and Time / Advanced Console UIs)
README
A fast ISO8601 date parser for Go
[![GoDoc](https://godoc.org/github.com/relvacode/iso8601?status.svg)](https://godoc.org/github.com/relvacode/iso8601) ![Build Status](https://github.com/relvacode/iso8601/actions/workflows/verify.yml/badge.svg) [![Go Report Card](https://goreportcard.com/badge/github.com/relvacode/iso8601)](https://goreportcard.com/report/github.com/relvacode/iso8601)
```
go get github.com/relvacode/iso8601
```The built-in RFC3333 time layout in Go is too restrictive to support any ISO8601 date-time.
This library parses any ISO8601 date into a native Go time object without regular expressions.
## Usage
```go
package mainimport "github.com/relvacode/iso8601"
// iso8601.Time can be used as a drop-in replacement for time.Time with JSON responses
type ExternalAPIResponse struct {
Timestamp *iso8601.Time
}func main() {
// iso8601.ParseString can also be called directly
t, err := iso8601.ParseString("2020-01-02T16:20:00")
}
```## Benchmark
```
goos: linux
goarch: amd64
pkg: github.com/relvacode/iso8601
cpu: AMD Ryzen 7 7840U w/ Radeon 780M Graphics
BenchmarkParse-16 35880919 30.89 ns/op 0 B/op 0 allocs/op
```