Skip to content

gabstv/iso8601

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

iso8601

Build Status

iso8601 is a simple Go package for encoding time.Time in JSON in ISO 8601 format, without subsecond resolution or time zone info.

This is a fork of the version created by joeshaw that adds support for implementing encoding according to google/go-querystring.

package main

import (
	"encoding/json"
	"fmt"
	"time"

	"github.com/google/go-querystring/query"
	"github.com/schallert/iso8601"
)

type ReqOpts struct {
	Created iso8601.Time `url:"created_at"`
}

func main() {
	t := time.Now()

	// Standard JSON format
	// "2014-03-25T16:15:25.701623113-04:00"
	data, _ := json.Marshal(t)
	fmt.Println(string(data))

	// ISO8601 JSON format
	// "2014-03-25T16:15:25"
	data, _ = json.Marshal(iso8601.Time(t))
	fmt.Println(string(data))

	// Output after decoding back to go.  Note the loss of
	// precision and time zone info.
	// 2014-03-25 16:15:25 +0000 +0000
	var t2 iso8601.Time
	json.Unmarshal(data, &t2)
	fmt.Println(t2)

	// URL encoded format
	// created_at=2015-09-02T14%3A41%3A08
	opts := ReqOpts{
		Created: iso8601.Time(t),
	}
	v, _ := query.Values(opts)
	fmt.Println(v.Encode())
}

About

Go package for encoding time in JSON and querystring in ISO 8601 format

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 100.0%