Qual é a melhor maneira de obter o carimbo de data / hora atual no Go e converter em string? Eu preciso de data e hora, por exemplo. Formato AAAAMMDDhhmmss.
t := time.Now()
fmt.Println(t.Format("20060102150405"))
imprime 20110504111515, ou pelo menos há alguns minutos atrás. (Estou no horário de verão do leste). Existem vários formatos de hora predefinidos nas constantes definidas no pacote de horas.
Você pode usar time.Now().UTC()se preferir ter o UTC do que o seu fuso horário local.
Eu definitivamente gosto da Kitchenconstante ( = "3:04PM")
tux21b
5
Obrigado por essa informação. Como o pacote de horas sabe ao passar "20060102150405", exatamente o que estamos passando, pois não é uma das constantes predefinidas no pacote de horas? Qual é o significado dessa data e hora no pacote de horas (20060102150405)? Parece um pouco peculiar para mim, mas, desde que funcione, suponho que não importa, desde que não cometamos um erro ao codificá-lo. Eu acho que eles não acharam adequado fornecer uma constante para esse formato e corresponder ao padrão das strings.
Brianoh 5/05
9
@brianoh: consulte golang.org/pkg/time/#Constants É a hora "01/02 15:04:05 PM '06 -0700" Como cada componente possui um número diferente (1, 2, 3 etc.), pode determinar a partir dos números quais componentes você deseja.
newacct 5/05
1
Observe que time.LocalTime () não existe mais: veja minha resposta abaixo para ser compatível com Go 1.0.3
Deleplace
71
Todas as outras respostas são muito importantes para quem vem do google e procura por "timestamp in go"! AAAAMMDDhhmmss não é um "registro de data e hora".
Para obter o "registro de data e hora" de uma data em go (número de segundos a partir de janeiro de 1970), a função correta é .Unix () e realmente retorna um número inteiro
Enquanto você está tecnicamente correto, acho que muitos codificadores hoje em dia confundem o carimbo de hora com 'O horário atual de algum modo formatado', de modo que esse título seria igualmente confuso para a maioria.
Roger Hill
Eu sugeri uma edição - Get current time as formatted string in Go?. Espero que alguém o aprove.
akki
56
Para facilitar a leitura, é melhor usar as constantes RFC no pacote de tempo (eu acho)
Respostas:
Use a
time.Now()
função e otime.Format()
métodoimprime
20110504111515
, ou pelo menos há alguns minutos atrás. (Estou no horário de verão do leste). Existem vários formatos de hora predefinidos nas constantes definidas no pacote de horas.Você pode usar
time.Now().UTC()
se preferir ter o UTC do que o seu fuso horário local.fonte
Kitchen
constante (= "3:04PM"
)Todas as outras respostas são muito importantes para quem vem do google e procura por "timestamp in go"! AAAAMMDDhhmmss não é um "registro de data e hora".
Para obter o "registro de data e hora" de uma data em go (número de segundos a partir de janeiro de 1970), a função correta é .Unix () e realmente retorna um número inteiro
fonte
Get current time as formatted string in Go?
. Espero que alguém o aprove.Para facilitar a leitura, é melhor usar as constantes RFC no pacote de tempo (eu acho)
fonte
Tuesday, 10-Nov-09 23:00:00 UTC
RFC3339 = "2006-01-02T15:04:05Z07:00"
play.golang.org/p/XmobwWSz5pN golang.org/pkg/timeUse as funções time.Now () e time.Format () (pois time.LocalTime () não existe mais a partir do Go 1.0.3)
Demo online (com data fixada no passado no parquinho, não importa)
fonte
s := "Actual time is: "+time.Now().String()
Encontre mais informações neste post: Obtenha data e hora atuais em vários formatos em golang
Esta é uma amostra dos diferentes formatos que você encontrará na postagem anterior:
fonte
Como eco da resposta do @ Bactisme, a maneira de recuperar o registro de data e hora atual (em milissegundos, por exemplo) é:
Recurso: https://gobyexample.com/epoch
fonte
https://golang.org/src/time/format.go especificado Para o tempo de análise,
15
é usado o Horário,04
usado por minutos,05
por segundos.Para analisar Data
11
,Jan
,January
é por meses,02
,Mon
,Monday
para o dia do mês,2006
para o ano e, claro,MST
para a zonaMas você também pode usar esse layout, que eu acho muito simples.
"Mon Jan 2 15:04:05 MST 2006"
DEMO
fonte
Para responder à pergunta exata:
fonte