Go:
Analyser une date à partir d'une chaîne de caractères
Comment faire :
Go fournit un support robuste pour analyser les dates et les heures via le package time
. La clé est de comprendre le format de date de référence de Go : Mon Jan 2 15:04:05 MST 2006
, que vous utilisez pour indiquer à Go comment interpréter la chaîne entrante. Voici un exemple rapide pour vous lancer :
package main
import (
"fmt"
"time"
)
func main() {
// Exemple de chaîne de date
dateStr := "2023-04-12 14:45:00"
// Définir la disposition/format de la chaîne de date d'entrée
// Cette disposition indique à Go de s'attendre à une année, suivie d'un mois,
// puis d'un jour, d'une heure, d'une minute et enfin d'une seconde
layout := "2006-01-02 15:04:05"
// Analyser la chaîne de date selon la disposition
parsedDate, err := time.Parse(layout, dateStr)
if err != nil {
fmt.Println("Erreur lors de l'analyse de la date :", err)
return
}
// Afficher la date analysée
fmt.Println("Date analysée :", parsedDate)
}
Lorsque vous exécutez ce code, vous obtiendrez :
Date analysée : 2023-04-12 14:45:00 +0000 UTC
Remarquez comment la chaîne layout
utilise les valeurs de la date de référence pour spécifier le format de la chaîne d’entrée. Ajustez le layout
pour correspondre au format de vos dates d’entrée.
Plongée profonde
La conception de l’analyse des dates et des heures en Go est unique, utilisant une date de référence spécifique (Mon Jan 2 15:04:05 MST 2006
). Cette approche, au lieu d’utiliser des spécificateurs de format plus conventionnels (comme YYYY
pour l’année), a été choisie pour sa lisibilité et sa facilité d’utilisation, en s’appuyant sur un format basé sur des exemples.
Bien que cela puisse initialement sembler inhabituel aux programmeurs habitués à d’autres langages, beaucoup le trouvent plus intuitif après une brève période d’ajustement. Pour les applications nécessitant des manipulations de date plus complexes ou des formats non directement pris en charge par le package time
de Go, des bibliothèques tierces telles que github.com/jinzhu/now
peuvent offrir des fonctionnalités supplémentaires. Cependant, pour la majorité des applications standard, les capacités intégrées de Go sont robustes, performantes et idiomatiques, incarnant la philosophie Go de simplicité et de clarté.