Go:
Analizzare una data da una stringa
Come fare:
Go fornisce un supporto robusto per l’analisi di date e orari attraverso il pacchetto time
. La chiave è capire il formato di riferimento delle date di Go: Mon Jan 2 15:04:05 MST 2006
, che si usa per dire a Go come interpretare la stringa in arrivo. Ecco un rapido esempio per iniziare:
package main
import (
"fmt"
"time"
)
func main() {
// Esempio di stringa data
dateStr := "2023-04-12 14:45:00"
// Definire il layout/formato della stringa data in input
// Questo layout dice a Go di aspettarsi un anno, seguito da un mese,
// poi un giorno, un'ora, un minuto e infine un secondo
layout := "2006-01-02 15:04:05"
// Analizza la stringa data secondo il layout
parsedDate, err := time.Parse(layout, dateStr)
if err != nil {
fmt.Println("Errore nell'analisi della data:", err)
return
}
// Stampa la data analizzata
fmt.Println("Data Analizzata:", parsedDate)
}
Quando esegui questo codice, otterrai:
Data Analizzata: 2023-04-12 14:45:00 +0000 UTC
Nota come la stringa layout
utilizza i valori della data di riferimento per specificare il formato della stringa in input. Regola il layout
per adattarlo al formato delle tue date in input.
Approfondimento
Il design dell’analisi delle date e degli orari di Go è unico, utilizzando una specifica data di riferimento (Mon Jan 2 15:04:05 MST 2006
). Questo approccio, invece di utilizzare specificatori di formato più convenzionali (come YYYY
per l’anno), è stato scelto per la leggibilità e la facilità d’uso, sfruttando un formato più basato sugli esempi.
Anche se ciò può inizialmente sembrare insolito per i programmatori abituati ad altri linguaggi, molti lo trovano più intuitivo dopo un breve periodo di adattamento. Per applicazioni che richiedono manipolazione di date più complessa o formati non direttamente supportati dal pacchetto time
di Go, le librerie di terze parti come github.com/jinzhu/now
possono offrire funzionalità aggiuntive. Tuttavia, per la maggior parte delle applicazioni standard, le capacità incorporate di Go sono robuste, performanti e idiomatiche, incarnando la filosofia Go di semplicità e chiarezza.