Estou tentando formatar a hora atual usando este formato yyyyMMddHHmmss
.
t := time.Now()
fmt.Println(t.Format("yyyyMMddHHmmss"))
Isso está gerando:
yyyyMMddHHmmss
Alguma sugestão?
Estou tentando formatar a hora atual usando este formato yyyyMMddHHmmss
.
t := time.Now()
fmt.Println(t.Format("yyyyMMddHHmmss"))
Isso está gerando:
yyyyMMddHHmmss
Alguma sugestão?
Respostas:
Usar
fmt.Println(t.Format("20060102150405"))
como Go usa as seguintes constantes para formatar a data, consulte aqui
const (
stdLongMonth = "January"
stdMonth = "Jan"
stdNumMonth = "1"
stdZeroMonth = "01"
stdLongWeekDay = "Monday"
stdWeekDay = "Mon"
stdDay = "2"
stdUnderDay = "_2"
stdZeroDay = "02"
stdHour = "15"
stdHour12 = "3"
stdZeroHour12 = "03"
stdMinute = "4"
stdZeroMinute = "04"
stdSecond = "5"
stdZeroSecond = "05"
stdLongYear = "2006"
stdYear = "06"
stdPM = "PM"
stdpm = "pm"
stdTZ = "MST"
stdISO8601TZ = "Z0700" // prints Z for UTC
stdISO8601ColonTZ = "Z07:00" // prints Z for UTC
stdNumTZ = "-0700" // always numeric
stdNumShortTZ = "-07" // always numeric
stdNumColonTZ = "-07:00" // always numeric
)
Esta pergunta surge no topo da pesquisa do Google quando você encontra "formato de hora atual golang", então, para todas as pessoas que desejam usar outro formato, lembre-se de que você sempre pode ligar para:
t := time.Now()
t.Year()
t.Month()
t.Day()
t.Hour()
t.Minute()
t.Second()
Por exemplo, para obter a data e hora atual como "AAAA-MM-DDTHH: MM: SS" (por exemplo, 2019-01-22T12: 40: 55), você pode usar estes métodos com fmt.Sprintf:
t := time.Now()
formatted := fmt.Sprintf("%d-%02d-%02dT%02d:%02d:%02d",
t.Year(), t.Month(), t.Day(),
t.Hour(), t.Minute(), t.Second())
Como sempre, lembre-se de que os documentos são a melhor fonte de aprendizagem: https://golang.org/pkg/time/
O pacote de tempo em Golang tem alguns métodos que podem valer a pena examinar.
função (Time) Format
func (t Time) Format (string de layout) string Format retorna uma representação textual do valor de tempo formatado de acordo com o layout, que define o formato mostrando como o tempo de referência,
Mon Jan 2 15:04:05 -0700 MST 2006 seria exibido se fosse o valor; serve como exemplo da saída desejada. As mesmas regras de exibição serão aplicadas ao valor da hora. Layouts predefinidos ANSIC, UnixDate, RFC3339 e outros descrevem representações padrão e convenientes do tempo de referência. Para mais informações sobre os formatos e a definição da hora de referência, consulte a documentação do ANSIC e as demais constantes definidas neste pacote.
Fonte ( http://golang.org/pkg/time/#Time.Format )
Também encontrei um exemplo de definição de layout ( http://golang.org/src/pkg/time/example_test.go )
func ExampleTime_Format() {
// layout shows by example how the reference time should be represented.
const layout = "Jan 2, 2006 at 3:04pm (MST)"
t := time.Date(2009, time.November, 10, 15, 0, 0, 0, time.Local)
fmt.Println(t.Format(layout))
fmt.Println(t.UTC().Format(layout))
// Output:
// Nov 10, 2009 at 3:00pm (PST)
// Nov 10, 2009 at 11:00pm (UTC)
}