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.