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 devez utiliser le package intégré time de Go. Ce package fournit toutes les fonctionnalités dont vous avez besoin pour effectuer 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 l’utiliserez comme fondement de toutes les autres opérations temporelles en Go.
Défi
FacileCréez une application de suivi du temps qui capture l'heure actuelle et l'affiche dans plusieurs formats. Ce défi mettra à l'épreuve votre capacité à utiliser la fonction time.Now() et à travailler avec des objets time.Time pour extraire différents composants de l'instant présent.
Vous recevrez une entrée :
- Une chaîne 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 à :
- Utiliser
time.Now()pour capturer l'heure actuelle et la stocker dans une variable - Afficher l'en-tête de l'application :
"=== TIME TRACKER APPLICATION ===" - Afficher la confirmation de capture de l'horodatage :
"Current time captured successfully" - Analyser l'entrée en la séparant sur les virgules afin d'obtenir les différentes demandes de format
- Afficher l'en-tête des formats :
"Displaying time in requested formats:" - 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]"(utiliser les composants de la méthode Date()) - Pour
"time": afficher"Time only: [hour]:[minute]:[second]"(utiliser les méthodes Hour(), Minute(), Second()) - Pour
"year": afficher"Year: [year_value]"(utiliser la méthode Year()) - Pour
"month": afficher"Month: [month_name]"(utiliser la méthode Month()) - Pour
"day": afficher"Day: [day_value]"(utiliser la méthode Day()) - Pour
"weekday": afficher"Weekday: [weekday_name]"(utiliser la méthode Weekday()) - Pour
"unix": afficher"Unix timestamp: [unix_seconds]"(utiliser la méthode Unix())
- Pour
- Compter et afficher les statistiques :
"=== TIME INFORMATION SUMMARY ===""Total formats displayed: [number_of_formats]""Timestamp components extracted: [number_of_unique_components]"
- Afficher des détails temporels supplémentaires :
"Additional time details:""- Nanoseconds: [nanosecond_value]"(utiliser la méthode Nanosecond())"- Location: [timezone_location]"(utiliser la méthode Location())"- Is zero time: [true_or_false]"(utiliser la méthode IsZero())
- 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 séparer 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 l'instant présent, et que vous pouvez extraire des composants spécifiques à l'aide des différentes méthodes disponibles sur cet objet. Ce défi montre comment capturer l'heure actuelle et extraire différentes informations à partir d'un seul objet time.Time.
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
}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
1Structures de contrôle avancées
Switch avec `fallthrough`Sortir de boucles imbriquéesContinuer une boucle spécifiqueL'instruction `goto`Récapitulatif - Contrôle de boucle avancé4Projet : Liste de tâches simple
Configuration du projetAjouter une tâche7Gestion des erreurs en profondeur
Types d'erreurs personnalisésEnvelopper des erreurs avec `%w`Désenvelopper avec `errors.Is`Désenvelopper avec `errors.As`Comprendre `panic`Utiliser `recover`Récapitulatif - Division sécurisée10Travailler avec le temps
Obtenir l'heure actuelleCréer une heure spécifiqueFormatage de l'heureParsing de chaînes de tempsDurée temporelleArithmétique temporelleSleep et TickersRécapitulatif - Minuteur simple2Structures et Méthodes
Définir des méthodes sur des structuresReceveurs par valeurReceveurs par pointeurChoisir les receveursMéthodes vs FonctionsRécapitulatif - Comportement des structures5Les Maps en profondeur
Maps de StructsPointeurs comme valeurs de MapTester les Maps NilComparer des MapsRécapitulatif - Compteur de fréquence de mots3Interfaces (Les bases)
Qu'est-ce qu'une Interface ?Définir une InterfaceImplémenter une InterfaceUtiliser les types d'InterfaceInterface videAssertions de typeType SwitchRécapitulatif - Formes et comportementsEntraînez-vous par vous-même : Compilateur Go en ligne