La historia de cómo tuve problemas con el formato de fecha en Golang
programación
Published: 2016-05-16

Este es un contenido trasladado desde Qiita.

Para especificar el formato de fecha en Golang, se utiliza el método Format de time, pero
era necesario que tuviera el siguiente formato para graphite-api.

Sin embargo, por alguna razón, funcionaba en un ambiente y no en otro, y perdí mucho tiempo intentando resolverlo.
Para resumir, parece que era un error. Se corrigió con la actualización de la versión de Golang.

Especificación del formato

Formato especificado  HH:SS_YYYYMMDD
Así que, en Golang, sería Format("15:04_20060102")

Código de prueba

package main

import (
        "fmt"
        "time"
)

func main() {
        now := time.Now()
        fmt.Printf("now=%v, formatted=%s\n", now, now.Format("15:04_20060102"))
}

En la versión 1.6.2

# go run main.go
now=2016-05-16 17:14:54.851096532 +0900 JST, formatted=17:14_20160516

En la versión 1.5.1

# go run main.go
now=2016-05-16 17:13:45.995101638 +0900 JST, formatted=17:13160160516

Parece que la parte _2 de 15:04_20060102 está siendo reconocida como stdUnderDay de la fecha.
https://github.com/golang/go/blob/master/src/time/format.go#L82

Me comentaron que se corrigió alrededor de la versión 1.6.1.
https://github.com/golang/go/commit/f4b4d2f4d9f574fe34b826bf0e6784956a247687

Por ahora, he decidido actualizar mi entorno a la versión 1.6.2.