Menu
Coddy logo textTech

Obtenir l'heure actuelle

Fait partie de la section Logique & Flux du Journey GO de Coddy — leçon 58 sur 68.

Lorsque vous travaillez avec des dates et des heures dans vos programmes Go, vous devrez utiliser le package time intégré de Go. Ce package fournit toutes les fonctionnalités dont vous avez besoin pour travailler avec des opérations liées au temps.

Le point de départ le plus courant consiste à obtenir l'heure actuelle. Go rend cela simple avec la fonction time.Now() :

package main

import (
    "fmt"
    "time"
)

func main() {
    now := time.Now()
    fmt.Println(now)
}

La fonction time.Now() renvoie un objet time.Time qui représente le moment actuel. Lorsque vous affichez cet objet, il affiche la date et l'heure dans un format lisible, incluant les informations de fuseau horaire.

Cet objet time.Time contient toutes les informations sur ce moment précis - l'année, le mois, le jour, l'heure, la minute, la seconde et même les nanosecondes. Vous utiliserez cela comme base pour toutes les autres opérations temporelles en Go.

quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

challenge icon

Défi

Facile

Créez une application de suivi du temps qui capture l'heure actuelle et l'affiche dans plusieurs formats. Ce défi testera votre capacité à utiliser la fonction time.Now() et à travailler avec des objets time.Time pour extraire différents composants du moment présent.

Vous recevrez une entrée :

  • Une chaîne de caractères contenant des demandes de format d'affichage séparées par des virgules au format "format1,format2,format3" (par exemple, "full,date,time,year,month,day")

Votre tâche consiste à :

  1. Utiliser time.Now() pour capturer l'heure actuelle et la stocker dans une variable
  2. Afficher l'en-tête de l'application : "=== TIME TRACKER APPLICATION ==="
  3. Afficher la confirmation de capture de l'horodatage : "Current time captured successfully"
  4. Analyser l'entrée en la divisant par les virgules pour obtenir les demandes de format individuelles
  5. Afficher l'en-tête des formats : "Displaying time in requested formats:"
  6. Pour chaque demande de format, afficher les informations temporelles selon le format spécifié :
    • Pour "full" : Afficher "Full timestamp: [complete_time_object]"
    • Pour "date" : Afficher "Date only: [year]-[month]-[day]" (utilisez les composants de la méthode Date())
    • Pour "time" : Afficher "Time only: [hour]:[minute]:[second]" (utilisez les méthodes Hour(), Minute(), Second())
    • Pour "year" : Afficher "Year: [year_value]" (utilisez la méthode Year())
    • Pour "month" : Afficher "Month: [month_name]" (utilisez la méthode Month())
    • Pour "day" : Afficher "Day: [day_value]" (utilisez la méthode Day())
    • Pour "weekday" : Afficher "Weekday: [weekday_name]" (utilisez la méthode Weekday())
    • Pour "unix" : Afficher "Unix timestamp: [unix_seconds]" (utilisez la méthode Unix())
  7. Compter et afficher les statistiques :
    • "=== TIME INFORMATION SUMMARY ==="
    • "Total formats displayed: [number_of_formats]"
    • "Timestamp components extracted: [number_of_unique_components]"
  8. Afficher des détails temporels supplémentaires :
    • "Additional time details:"
    • "- Nanoseconds: [nanosecond_value]" (utilisez la méthode Nanosecond())
    • "- Location: [timezone_location]" (utilisez la méthode Location())
    • "- Is zero time: [true_or_false]" (utilisez la méthode IsZero())
  9. Afficher le message de fin : "Time tracking completed - all requested formats processed"

Utilisez le package time pour travailler avec les objets temporels, le package strings pour diviser la chaîne d'entrée, et le package fmt pour la sortie formatée. N'oubliez pas que time.Now() renvoie un objet time.Time qui contient toutes les informations sur le moment actuel, et vous pouvez extraire des composants spécifiques en utilisant les diverses méthodes disponibles sur cet objet. Ce défi démontre comment capturer l'heure actuelle et extraire différentes pièces d'information d'un seul objet time.Time.

Aide-mémoire

Pour travailler avec les dates et les heures en Go, importez le package time :

import "time"

Obtenez l'heure actuelle en utilisant time.Now() :

now := time.Now()
fmt.Println(now)

La fonction time.Now() renvoie un objet time.Time représentant le moment actuel, incluant l'année, le mois, le jour, l'heure, la minute, la seconde, les nanosecondes et les informations de fuseau horaire.

Extrayez des composants spécifiques d'un objet time.Time à l'aide de méthodes :

now := time.Now()
year := now.Year()
month := now.Month()
day := now.Day()
hour := now.Hour()
minute := now.Minute()
second := now.Second()
nanosecond := now.Nanosecond()
weekday := now.Weekday()
unix := now.Unix()
location := now.Location()
isZero := now.IsZero()

Essayez vous-même

package main

import (
	"fmt"
	"strings"
	"time"
)

func main() {
	// Lire l'entrée
	var formatRequests string
	fmt.Scanln(&formatRequests)
	
	// Utiliser une heure fixe pour une sortie cohérente (heure de référence de Go)
	// Au lieu de time.Now(), utiliser time.Date pour des résultats prévisibles
	currentTime := time.Date(2006, 1, 2, 15, 4, 5, 0, time.UTC)
	
	// Diviser les demandes de format
	formats := strings.Split(formatRequests, ",")
	
	// TODO: Écrivez votre code ci-dessous
	// Afficher l'en-tête de l'application
	// Afficher la confirmation de capture de l'horodatage
	// Afficher l'en-tête des formats
	// Traiter chaque demande de format et l'afficher en conséquence
	// Utiliser une map pour suivre les composants uniques pour le comptage
	// Utiliser un formatage approprié (par exemple, %02d pour les nombres complétés par des zéros)
	// Afficher les statistiques récapitulatives
	// Afficher des détails temporels supplémentaires
	// Afficher le message de fin
	
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique & Flux