{"id":46191,"date":"2025-04-21T05:52:30","date_gmt":"2025-04-21T05:52:30","guid":{"rendered":"https:\/\/www.carmatec.com\/?p=46191"},"modified":"2025-12-31T07:38:47","modified_gmt":"2025-12-31T07:38:47","slug":"maitriser-la-gestion-de-la-date-et-de-lheure-dans-go-un-guide-pratique","status":"publish","type":"post","link":"https:\/\/www.carmatec.com\/fr_fr\/blog\/mastering-date-and-time-handling-in-go-a-practical-guide\/","title":{"rendered":"Ma\u00eetriser la gestion de la date et de l'heure en Go : Un guide pratique"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"46191\" class=\"elementor elementor-46191\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9d73a4a e-flex e-con-boxed e-con e-parent\" data-id=\"9d73a4a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-72c3bfd elementor-widget elementor-widget-text-editor\" data-id=\"72c3bfd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">La gestion des dates et des heures est un aspect fondamental de la programmation, qu'il s'agisse de cr\u00e9er des API, de planifier des t\u00e2ches ou d'enregistrer des \u00e9v\u00e9nements. En Go, la fonction <\/span><span style=\"font-weight: 400;\">temps<\/span><span style=\"font-weight: 400;\"> offre un moyen robuste et intuitif de g\u00e9rer les dates, les heures, les fuseaux horaires et les dur\u00e9es. Ce guide vous guidera \u00e0 travers les \u00e9l\u00e9ments essentiels de l'outil de gestion des dates et heures. <\/span><span style=\"font-weight: 400;\">temps<\/span><span style=\"font-weight: 400;\"> Les fonctionnalit\u00e9s de la date et de l'heure dans Go, des op\u00e9rations de base aux cas d'utilisation avanc\u00e9s, sont illustr\u00e9es par des exemples pratiques et des bonnes pratiques. \u00c0 la fin, vous serez s\u00fbr de ma\u00eetriser la gestion de la date et de l'heure en Go.<\/span><\/p><h3><b>L'importance de la gestion des dates et des heures<\/b><\/h3><p><span style=\"font-weight: 400;\">Les dates et heures sont essentielles dans de nombreuses applications :<\/span><\/p><ul><li style=\"font-weight: 400;\" aria-level=\"1\"><b>API<\/b><span style=\"font-weight: 400;\"> doivent formater et analyser les horodatages.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><b>Programmateurs<\/b><span style=\"font-weight: 400;\"> s'appuyer sur un timing pr\u00e9cis pour effectuer des t\u00e2ches.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><b>Journaux<\/b><span style=\"font-weight: 400;\"> utiliser des horodatages pour suivre les \u00e9v\u00e9nements.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><b>Interfaces utilisateurs<\/b> afficher les dates dans des formats localis\u00e9s.<\/li><\/ul><p><span style=\"font-weight: 400;\">Go's <code>temps<\/code> est con\u00e7u pour \u00eatre simple mais puissant, offrant des outils pour g\u00e9rer efficacement ces sc\u00e9narios. Contrairement \u00e0 certains langages qui s'appuient fortement sur des biblioth\u00e8ques tierces, la biblioth\u00e8que standard de Go est souvent tout ce dont vous avez besoin. Plongeons dans l'aventure !<\/span><\/p><h3><b>D\u00e9marrer avec le paquet time<\/b><\/h3><p><span style=\"font-weight: 400;\">Le <code>temps<\/code> fait partie de la biblioth\u00e8que standard de Go, aucune d\u00e9pendance externe n'est donc n\u00e9cessaire. Pour l'utiliser, il suffit d'importer le paquet :<\/span><\/p><p><span style=\"font-weight: 400;\"><code>aller<\/code><br \/>import \"time\"<\/span><\/p><p><span style=\"font-weight: 400;\">Les types de base dans le <code>temps<\/code> sont :<\/span><\/p><ul><li style=\"font-weight: 400;\" aria-level=\"1\"><code>temps.Temps<\/code>: Repr\u00e9sente un point pr\u00e9cis dans le temps (par exemple, \"2025-04-21 10:30:00\").<\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><code>temps.Dur\u00e9e<\/code>: Repr\u00e9sente une dur\u00e9e (par exemple, 5 heures, 30 secondes).<\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><code>heure.Emplacement<\/code>: Repr\u00e9sente un fuseau horaire (par exemple, \"America\/New_York\").<\/li><\/ul><p><span style=\"font-weight: 400;\">Commen\u00e7ons par quelques op\u00e9rations de base.<\/span><\/p><h3><b>Travailler avec la date et l'heure actuelles<\/b><\/h3><p><span style=\"font-weight: 400;\">Pour obtenir la date et l'heure actuelles, utilisez <code>time.Now()<\/code>:<br \/><\/span><span style=\"font-weight: 400;\"><code>aller<\/code><br \/><\/span><span style=\"font-weight: 400;\">paquet principal<\/span><\/p><pre><span style=\"font-weight: 400;\">importer (<\/span>\n<span style=\"font-weight: 400;\"> \u00a0\u00a0\u00a0\"fmt\"<\/span>\n<span style=\"font-weight: 400;\"> \u00a0\u00a0\u00a0\"temps\"<\/span>\n<span style=\"font-weight: 400;\">)<\/span>\n<span style=\"font-weight: 400;\">\nfunc main() {<\/span>\n<span style=\"font-weight: 400;\"> \u00a0\u00a0\u00a0now := time.Now()<\/span>\n<span style=\"font-weight: 400;\"> \u00a0\u00a0\u00a0fmt.Println(\"Heure actuelle :\", now)<\/span>\n<span style=\"font-weight: 400;\">}<\/span><\/pre><p><span style=\"font-weight: 400;\">Il en r\u00e9sulte quelque chose comme :<\/span><\/p><p><span style=\"font-weight: 400;\">Heure actuelle : 2025-04-21 10:30:45.123456789 +0000 UTC<\/span><\/p><p><span style=\"font-weight: 400;\">Le <code>temps.Temps<\/code> comprend la date, l'heure et le fuseau horaire (UTC par d\u00e9faut). Vous pouvez extraire des \u00e9l\u00e9ments individuels tels que l'ann\u00e9e, le mois ou l'heure :<\/span><\/p><pre><span style=\"font-weight: 400;\">aller<\/span>\n<span style=\"font-weight: 400;\">year := now.Year() \/\/ ex. 2025<\/span>\n<span style=\"font-weight: 400;\">month := now.Month() \/\/ par exemple, April<\/span>\n<span style=\"font-weight: 400;\">day := now.Day() \/\/ ex : 21<\/span>\n<span style=\"font-weight: 400;\">hour := now.Hour() \/\/ par exemple, 10<\/span>\n<span style=\"font-weight: 400;\">minute := now.Minute() \/\/ par exemple, 30<\/span>\n<span style=\"font-weight: 400;\">second := now.Second() \/\/ par exemple, 45<\/span>\n\n<span style=\"font-weight: 400;\">fmt.Printf(\"Date: %d-%02d-%02d\\n\", year, month, day)<\/span>\n<span style=\"font-weight: 400;\">fmt.Printf(\"Time: %02d:%02d:%02d\\n\", hour, minute, second)<\/span><\/pre><p><span style=\"font-weight: 400;\">Sortie :<\/span><\/p><p><span style=\"font-weight: 400;\">Date : 2025-04-21<br \/><\/span><span style=\"font-weight: 400;\">Heure : 10:30:45<\/span><\/p><p><span style=\"font-weight: 400;\">Cette fonction est utile pour enregistrer ou afficher des parties sp\u00e9cifiques d'un horodatage.<\/span><\/p><h3><b>Analyse et formatage des dates<\/b><\/h3><p><span style=\"font-weight: 400;\">L'approche de Go en mati\u00e8re d'analyse et de formatage des dates est unique. Au lieu d'utiliser des sp\u00e9cificateurs de format comme <code>%Y<\/code> ou <code>%m<\/code> (courant dans d'autres langages), Go utilise un temps de r\u00e9f\u00e9rence : <b>2 janvier 2006, 15:04:05<\/b> (format\u00e9 comme <code>2006-01-02 15:04:05<\/code>). Cette date a \u00e9t\u00e9 choisie parce qu'elle est facile \u00e0 retenir et qu'elle correspond \u00e0 l'ann\u00e9e de naissance de Go (2006).<\/span><\/p><h3><b>Formatage des dates<\/b><\/h3><p><span style=\"font-weight: 400;\">Pour formater un <code>temps.Temps<\/code> dans une cha\u00eene de caract\u00e8res, utilisez <code>time.Format()<\/code> avec une cha\u00eene de caract\u00e8res bas\u00e9e sur l'heure de r\u00e9f\u00e9rence :<\/span><\/p><pre><span style=\"font-weight: 400;\">aller<\/span>\n<span style=\"font-weight: 400;\">now := time.Now()<\/span>\n<span style=\"font-weight: 400;\">formatted := now.Format(\"2006-01-02 15:04:05\")<\/span>\n<span style=\"font-weight: 400;\">fmt.Println(\"Heure format\u00e9e :\", format\u00e9e)<\/span><\/pre><p><span style=\"font-weight: 400;\">Sortie :<\/span><\/p><p><span style=\"font-weight: 400;\">Heure format\u00e9e : 2025-04-21 10:30:45<\/span><\/p><p><span style=\"font-weight: 400;\">Vous pouvez personnaliser le format. Par exemple :<\/span><\/p><pre><span style=\"font-weight: 400;\">aller<\/span>\n<span style=\"font-weight: 400;\">fmt.Println(now.Format(\"Mon, Jan 2, 2006\")) \/\/ par exemple, Mon, 21 avril 2025<\/span>\n<span style=\"font-weight: 400;\">fmt.Println(now.Format(\"3:04 PM\"))           \/\/ par exemple, 10:30 AM<\/span><\/pre><h3><b>Analyse des dates<\/b><\/h3><p><span style=\"font-weight: 400;\">Pour analyser une cha\u00eene de caract\u00e8res en un <code>temps.Temps<\/code> valeur, utilisation <code>time.Parse()<\/code>:<\/span><\/p><pre><span style=\"font-weight: 400;\">aller<\/span>\n<span style=\"font-weight: 400;\">dateStr := \"2025-04-21 10:30:00\"<\/span>\n<span style=\"font-weight: 400;\">layout := \"2006-01-02 15:04:05\"<\/span>\n<span style=\"font-weight: 400;\">t, err := time.Parse(layout, dateStr)<\/span>\n<span style=\"font-weight: 400;\">if err != nil {<\/span>\n<span style=\"font-weight: 400;\"> \u00a0\u00a0\u00a0fmt.Println(\"Error parsing time :\", err)<\/span>\n<span style=\"font-weight: 400;\"> \u00a0\u00a0\u00a0retour<\/span>\n<span style=\"font-weight: 400;\">}<\/span>\n<span style=\"font-weight: 400;\">fmt.Println(\"Temps analys\u00e9 :\", t)<\/span><\/pre><p><span style=\"font-weight: 400;\">Sortie :<\/span><\/p><p><span style=\"font-weight: 400;\">Heure analys\u00e9e : 2025-04-21 10:30:00 +0000 UTC<\/span><\/p><p><span style=\"font-weight: 400;\">Si la cha\u00eene ne correspond pas \u00e0 la mise en page, <code>time.Parse()<\/code> renvoie une erreur, il faut donc toujours v\u00e9rifier s'il y a des erreurs.<\/span><\/p><p><span style=\"font-weight: 400;\">Pour plus de commodit\u00e9, Go propose des pr\u00e9sentations pr\u00e9d\u00e9finies telles que <code>temps.RFC3339<\/code> pour les formats standard :<\/span><\/p><pre><span style=\"font-weight: 400;\">aller<\/span>\n<span style=\"font-weight: 400;\">t, err = time.Parse(time.RFC3339, \"2025-04-21T10:30:00Z\")<\/span>\n<span style=\"font-weight: 400;\">fmt.Println(\"Parsed RFC3339 time :\", t)<\/span><\/pre><h3><b>Manipulation des dates et heures<\/b><\/h3><p><span style=\"font-weight: 400;\">Le <code>temps<\/code> permet d'effectuer facilement des op\u00e9rations arithm\u00e9tiques sur les dates et les heures.<\/span><\/p><h3><b>Addition et soustraction du temps<\/b><\/h3><p><span style=\"font-weight: 400;\">Utilisation <code>Ajouter()<\/code> pour ajouter un <code>temps.Dur\u00e9e<\/code> \u00e0 un <code>temps.Temps<\/code>:<\/span><\/p><pre><span style=\"font-weight: 400;\">aller<\/span>\n<span style=\"font-weight: 400;\">now := time.Now()<\/span>\n<span style=\"font-weight: 400;\">future := now.Add(24 * time.Hour) \/\/ Ajoute 1 jour<\/span>\n<span style=\"font-weight: 400;\">past := now.Add(-2 * time.Hour) \/\/ Soustraire 2 heures<\/span>\n\n<span style=\"font-weight: 400;\">fmt.Println(\"Now :\", now)<\/span>\n<span style=\"font-weight: 400;\">fmt.Println(\"Future :\", future)<\/span>\n<span style=\"font-weight: 400;\">fmt.Println(\"Pass\u00e9 :\", pass\u00e9)<\/span>\n<span style=\"font-weight: 400;\">temps.Dur\u00e9e<\/span><span style=\"font-weight: 400;\"> peuvent \u00eatre cr\u00e9\u00e9es \u00e0 l'aide de constantes telles que <\/span><span style=\"font-weight: 400;\">heure.Hour<\/span><span style=\"font-weight: 400;\">, <\/span><span style=\"font-weight: 400;\">temps.minute<\/span><span style=\"font-weight: 400;\">, ou <\/span><span style=\"font-weight: 400;\">temps.seconde<\/span><span style=\"font-weight: 400;\">. Vous pouvez \u00e9galement analyser les dur\u00e9es :<\/span>\n\n<span style=\"font-weight: 400;\">aller<\/span>\n<span style=\"font-weight: 400;\">duration, _ := time.ParseDuration(\"1h30m\")<\/span>\n<span style=\"font-weight: 400;\">future = now.Add(duration)<\/span>\n<span style=\"font-weight: 400;\">fmt.Println(\"1 heure 30 minutes plus tard :\", future)<\/span><\/pre><h3><b>Calcul des diff\u00e9rences de temps<\/b><\/h3><p><span style=\"font-weight: 400;\">Pour trouver la diff\u00e9rence entre deux temps, utilisez <code>Sub()<\/code>:<\/span><\/p><pre><span style=\"font-weight: 400;\">aller<\/span>\n<span style=\"font-weight: 400;\">start := time.Now()<\/span>\n<span style=\"font-weight: 400;\">time.Sleep(2 * time.Second) \/\/ Simule un peu de travail<\/span>\n<span style=\"font-weight: 400;\">end := time.Now()<\/span>\n\n<span style=\"font-weight: 400;\">\u00e9coul\u00e9 := end.Sub(start)<\/span>\n<span style=\"font-weight: 400;\">fmt.Printf(\"Temps \u00e9coul\u00e9 : %v\\n\", \u00e9coul\u00e9)<\/span><\/pre><p><span style=\"font-weight: 400;\">Sortie :<\/span><\/p><p><span style=\"font-weight: 400;\">Temps \u00e9coul\u00e9 : 2.001234567s<\/span><\/p><h3><b>Comparaison des dates<\/b><\/h3><p><span style=\"font-weight: 400;\">Vous pouvez comparer <code>temps.Temps<\/code> \u00e0 l'aide de <code>Avant(), Apr\u00e8s()<\/code>, et <code>\u00c9gal()<\/code>:<\/span><\/p><pre><span style=\"font-weight: 400;\">aller<\/span>\n<span style=\"font-weight: 400;\">t1 := time.Now()<\/span>\n<span style=\"font-weight: 400;\">t2 := t1.Add(1 * time.Hour)<\/span>\n\n<span style=\"font-weight: 400;\">fmt.Println(\"t1 avant t2 ?\", t1.Before(t2)) \/\/ vrai<\/span>\n<span style=\"font-weight: 400;\">fmt.Println(\"t2 apr\u00e8s t1 ?\", t2.After(t1)) \/\/ true<\/span>\n<span style=\"font-weight: 400;\">fmt.Println(\"t1 equals t2 ?\", t1.Equal(t2))  \/\/ faux<\/span><\/pre><h3><b>Gestion des fuseaux horaires<\/b><\/h3><p><span style=\"font-weight: 400;\">Les fuseaux horaires peuvent \u00eatre difficiles \u00e0 g\u00e9rer, mais Go les simplifie avec <code>heure.Emplacement<\/code>.<\/span><\/p><h3><b>Zones horaires de chargement<\/b><\/h3><p>Pour travailler avec un fuseau horaire sp\u00e9cifique, utilisez <code>time.LoadLocation()<\/code>:<\/p><pre>go\nloc, err := time.LoadLocation(\"America\/New_York\")\nif err != nil {\nfmt.Println(\"Erreur de chargement de l'emplacement :\", err)\nreturn\n}\nnyTime := time.Now().In(loc)\nfmt.Println(\"Heure de New York :\", nyTime)<\/pre><p>Le <code>time.LoadLocation()<\/code> utilise la base de donn\u00e9es des fuseaux horaires de l'IANA (par exemple, \"America\/New_York\", \"Asia\/Tokyo\"). Si vous ne sp\u00e9cifiez pas de lieu, Go utilise UTC par d\u00e9faut.<\/p><h3><strong>Conversion entre fuseaux horaires<\/strong><\/h3><p>Pour convertir une heure dans un autre fuseau horaire, utilisez <code>In()<\/code>:<\/p><pre>go\nutcTime := time.Now()\nloc, _ = time.LoadLocation(\"Asia\/Tokyo\")\ntokyoTime := utcTime.In(loc)\nfmt.Println(\"Heure UTC :\", utcTime)\nfmt.Println(\"Heure de Tokyo :\", tokyoTime)<\/pre><h3><strong>Utilisation de l'heure UTC et de l'heure locale<\/strong><\/h3><p>Pour l'UTC, utilisez UTC() :<\/p><pre>aller\nutc := time.Now().UTC()\nfmt.Println(\"Heure UTC :\", utc)\nPour le fuseau horaire local du syst\u00e8me, utilisez Local() :\ngo\nlocal := time.Now().Local()\nfmt.Println(\"Heure locale :\", local)<\/pre><h3><strong>Exemples pratiques<\/strong><\/h3><p>Examinons quelques sc\u00e9narios concrets.<\/p><h3><strong>Planification des t\u00e2ches<\/strong><\/h3><p>Pour ex\u00e9cuter une t\u00e2che \u00e0 intervalles r\u00e9guliers, utilisez time.Tick() :<\/p><pre>aller\nticker := time.Tick(2 * time.Second)\nfor t := range ticker {\n    fmt.Println(\"Tick at\", t)\n}\nPour un d\u00e9lai unique, utilisez time.After() :\ngo\nselect {\ncase &lt;-time.After(3 * time.Second) :\n    fmt.Println(&quot;3 secondes plus tard...&quot;)\n}<\/pre><h3><strong>Calcul de l'\u00e2ge<\/strong><\/h3><p>Calculer l'\u00e2ge d'une personne \u00e0 partir de sa date de naissance :<\/p><pre>aller\nbirthStr := \"1990-05-15\"\nbirthTime, _ := time.Parse(\"2006-01-02\", birthStr)\nnow := time.Now()\nage := now.Year() - birthTime.Year()\nif now.YearDay() &lt; birthTime.YearDay() {\nage-- \/\/ Ajustement si l&#039;anniversaire n&#039;a pas eu lieu cette ann\u00e9e\n}\nfmt.Printf(&quot;Age : %d\\n&quot;, age)<\/pre><h3><strong>Formatage pour les API<\/strong><\/h3><p>Les API utilisent souvent des horodatages ISO 8601 (RFC3339) :<\/p><pre>aller\nnow := time.Now()\napiTime := now.Format(time.RFC3339)\nfmt.Println(\"API timestamp :\", apiTime)<\/pre><h3><strong>Pi\u00e8ges courants et bonnes pratiques<\/strong><\/h3><h5><strong>Les pi\u00e8ges<\/strong><\/h5><ul><li><strong>Mises en page incorrectes :<\/strong> L'inad\u00e9quation de la mise en page dans <code>time.Parse()<\/code> ou <code>time.Format()<\/code> est une erreur courante. Il faut toujours rev\u00e9rifier l'heure de r\u00e9f\u00e9rence (<code>2006-01-02 15:04:05<\/code>).<\/li><li><strong>Hypoth\u00e8ses de fuseau horaire :<\/strong> Le fait de supposer que toutes les heures sont exprim\u00e9es en UTC ou en heure locale peut entra\u00eener des bogues. Il faut toujours sp\u00e9cifier explicitement le fuseau horaire.<\/li><li><strong>Ignorer les erreurs :<\/strong> Des fonctions telles que <code>time.Parse()<\/code> et <code>time.LoadLocation()<\/code> les erreurs de retour. Il faut toujours les traiter.<\/li><\/ul><h5><strong>Meilleures pratiques<\/strong><\/h5><ul><li><strong>Utiliser l'UTC pour le stockage :<\/strong> Stocker les horodatages en UTC pour \u00e9viter la confusion des fuseaux horaires.<\/li><li><strong>Valider les entr\u00e9es :<\/strong> Lors de l'analyse des dates fournies par l'utilisateur, il convient de valider le format et de traiter les erreurs avec \u00e9l\u00e9gance.<\/li><li><strong>Exploiter les mises en page pr\u00e9d\u00e9finies :<\/strong> Utilisez des constantes telles que <code>temps.RFC3339<\/code> pour les formats standard.<\/li><li><strong>Profil de performance :<\/strong> Pour les applications \u00e0 haute performance, \u00e9vitez les appels fr\u00e9quents \u00e0 <code>time.Now()<\/code> dans des boucles \u00e9troites, car il peut \u00eatre relativement co\u00fbteux.<\/li><\/ul><h3><strong>Biblioth\u00e8ques tierces<\/strong><\/h3><p>Alors que la <code>temps<\/code> est suffisant pour la plupart des t\u00e2ches, les biblioth\u00e8ques comme <code>github.com\/jinzhu\/now<\/code> peuvent simplifier des op\u00e9rations complexes (par exemple, trouver le d\u00e9but d'une semaine). Utilisez-les avec parcimonie, la biblioth\u00e8que standard \u00e9tant souvent suffisante.<\/p><h2><strong>Conclusion<\/strong><\/h2><p>Go's <code>temps<\/code> est un outil puissant pour g\u00e9rer les dates, les heures et les fuseaux horaires. Du formatage et de l'analyse \u00e0 l'arithm\u00e9tique et \u00e0 la planification, il fournit tout ce dont vous avez besoin pour une gestion robuste du temps. En comprenant les concepts de base<code>-time.Time, time.Duration<\/code>, et <code>temps.Emplacement-<\/code>et en suivant les meilleures pratiques, vous pouvez g\u00e9rer les sc\u00e9narios de date et d'heure les plus complexes en toute confiance.<\/p><p>Exp\u00e9rimentez avec les exemples de ce guide, explorez les <a href=\"https:\/\/pkg.go.dev\/time\">la documentation officielle de Go<\/a>et essayez de cr\u00e9er vos propres fonctionnalit\u00e9s bas\u00e9es sur le temps. Qu'il s'agisse de planifier des t\u00e2ches, d'enregistrer des \u00e9v\u00e9nements ou de formater des r\u00e9ponses d'API, la ma\u00eetrise de la gestion de la date et de l'heure en Go rendra vos applications plus fiables et plus conviviales. Cr\u00e9ez des applications performantes et \u00e9volutives avec <a href=\"https:\/\/www.carmatec.com\/fr_fr\/\">Carmatec<\/a> expert <a href=\"https:\/\/www.carmatec.com\/fr_fr\/societe-de-developpement-de-golang\/\">Services de d\u00e9veloppement Golang<\/a> adapt\u00e9s aux besoins des entreprises modernes.<\/p><p>\u00a0<\/p><p>\u00a0<\/p><p>\u00a0<\/p><p>\u00a0<\/p><p>\u00a0<\/p><p>\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Handling dates and times is a fundamental aspect of programming, whether you&#8217;re building APIs, scheduling tasks, or logging events. In Go, the time package provides a robust and intuitive way to manage dates, times, time zones, and durations. This guide will walk you through the essentials of the time package, from basic operations to advanced [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":46221,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-46191","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"_links":{"self":[{"href":"https:\/\/www.carmatec.com\/fr_fr\/wp-json\/wp\/v2\/posts\/46191","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.carmatec.com\/fr_fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.carmatec.com\/fr_fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.carmatec.com\/fr_fr\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.carmatec.com\/fr_fr\/wp-json\/wp\/v2\/comments?post=46191"}],"version-history":[{"count":0,"href":"https:\/\/www.carmatec.com\/fr_fr\/wp-json\/wp\/v2\/posts\/46191\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.carmatec.com\/fr_fr\/wp-json\/wp\/v2\/media\/46221"}],"wp:attachment":[{"href":"https:\/\/www.carmatec.com\/fr_fr\/wp-json\/wp\/v2\/media?parent=46191"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.carmatec.com\/fr_fr\/wp-json\/wp\/v2\/categories?post=46191"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.carmatec.com\/fr_fr\/wp-json\/wp\/v2\/tags?post=46191"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}