यह सामग्री Qiita से स्थानांतरित की गई है।
Golang में तारीख के फ़ॉर्मेट को निर्दिष्ट करने के लिए time के Format का उपयोग किया जाता है, लेकिन
graphite-api के लिए निम्नलिखित फ़ॉर्मेट में होना आवश्यक था।
हालांकि, किसी कारणवश ऐसा वातावरण था जो ठीक से काम कर रहा था और ऐसा जो नहीं कर रहा था, और मैंने समय बर्बाद किया।
निष्कर्ष के रूप में, ऐसा लगता है कि यह एक बग था? गोलंग के संस्करण में सुधार से यह ठीक हो गया।
फ़ॉर्मेट का निर्दिष्ट करना
निर्दिष्ट फ़ॉर्मेट HH:SS_YYYYMMDD
इसलिए, Golang के लिए Format("15:04_20060102")
परीक्षण कोड
package main
import (
"fmt"
"time"
)
func main() {
now := time.Now()
fmt.Printf("now=%v, formatted=%s\n", now, now.Format("15:04_20060102"))
}
1.6.2 के मामले में
# go run main.go
now=2016-05-16 17:14:54.851096532 +0900 JST, formatted=17:14_20160516
1.5.1 के मामले में
# go run main.go
now=2016-05-16 17:13:45.995101638 +0900 JST, formatted=17:13160160516
15:04_20060102 के _2 का भाग तारीख के stdUnderDay के रूप में पहचाना जा रहा है।
https://github.com/golang/go/blob/master/src/time/format.go#L82
मुझे बताया गया था कि, यह 1.6.1 के करीब ठीक किया गया है।
https://github.com/golang/go/commit/f4b4d2f4d9f574fe34b826bf0e6784956a247687
फिलहाल, मैं अपने वातावरण को भी 1.6.2 में अपडेट करने का निर्णय लेता हूँ।