Collectives™ on Stack Overflow
Find centralized, trusted content and collaborate around the technologies you use most.
Learn more about Collectives
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
Learn more about Teams
If you're looking for a simple, but not perfect solution consider using
time.RFC3339
constant. But also know that there are differences between ISO8601 which are too complex for this answer.
See
https://ijmacd.github.io/rfc3339-iso8601/
for differences and also has a handy test file generator to show differences. There is also a good discussion on SO here
What's the difference between ISO 8601 and RFC 3339 Date Formats?
package main
import (
"time"
"fmt"
func main(){
fmt.Println(time.Now().Format(time.RFC3339))
golang Time.Format
–
–
–
–
–
–
first I found the time.RFCxxx
that was the closest to my target
I copied its value
I fiddled with it until I found the expected result
which is
2006-01-02T15:04:05.999Z
–
ISO8601 allows for variable levels of granularity. You can have just a year, year+month, year+month+day, add a time portion, and optionally have a timezone portion. Go's built-in time parsing, however, requires you to know ahead-of-time which parts will be included.
The github.com/btubbs/datetime library provides a more flexible parser that can handle all the commonly used ISO8601 formats. See https://github.com/btubbs/datetime
Disclosure: I wrote that library.
–
–
Replacing the sign in the format with a Z triggers the ISO 8601 behavior. Which is exactly time.RFC3339. If you are wanting the string output to end in 'Z' what you need to do is convert to the UTC zone.
package main
import (
"fmt"
"time"
func main() {
fmt.Println(time.Now().UTC().Format("2006-01-02T15:04:05Z07:00"))
// this is the same format used by RFC3339. just a note on why.
–
–
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.