Menu
Coddy logo textTech

Aktuelle Zeit abrufen

Teil des Abschnitts Logik & Ablauf der GO-Journey von Coddy — Lektion 58 von 68.

Wenn Sie in Ihren Go-Programmen mit Daten und Zeiten arbeiten, müssen Sie das integrierte time-Paket von Go verwenden. Dieses Paket bietet alle Funktionen, die Sie für die Arbeit mit zeitbezogenen Operationen benötigen.

Der häufigste Ausgangspunkt ist das Abrufen der aktuellen Zeit. Go macht dies mit der Funktion time.Now() einfach:

package main

import (
    "fmt"
    "time"
)

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

Die Funktion time.Now() gibt ein time.Time-Objekt zurück, das den aktuellen Zeitpunkt darstellt. Wenn Sie dieses Objekt ausgeben, zeigt es das Datum und die Uhrzeit in einem lesbaren Format an, einschließlich der Zeitzoneninformationen.

Dieses time.Time-Objekt enthält alle Informationen über diesen spezifischen Moment – das Jahr, den Monat, den Tag, die Stunde, die Minute, die Sekunde und sogar Nanosekunden. Sie werden dies als Grundlage für alle anderen Zeitoperationen in Go verwenden.

quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

challenge icon

Aufgabe

Einfach

Erstellen Sie eine Zeiterfassungsanwendung, die die aktuelle Zeit erfasst und in mehreren Formaten anzeigt. Diese Herausforderung testet Ihre Fähigkeit, die Funktion time.Now() zu verwenden und mit time.Time-Objekten zu arbeiten, um verschiedene Komponenten des aktuellen Augenblicks zu extrahieren.

Sie erhalten eine Eingabe:

  • Einen String, der Anzeigeformat-Anfragen enthält, die durch Kommas getrennt sind, im Format "format1,format2,format3" (z. B. "full,date,time,year,month,day")

Ihre Aufgabe ist es:

  1. Verwenden Sie time.Now(), um die aktuelle Zeit zu erfassen und in einer Variablen zu speichern
  2. Zeigen Sie den Anwendungs-Header an: "=== TIME TRACKER APPLICATION ==="
  3. Zeigen Sie die Bestätigung der Zeitstempelerfassung an: "Current time captured successfully"
  4. Verarbeiten Sie die Eingabe, indem Sie sie an den Kommas aufteilen, um die einzelnen Formatanfragen zu erhalten
  5. Zeigen Sie den Formate-Header an: "Displaying time in requested formats:"
  6. Zeigen Sie für jede Formatanfrage die Zeitinformationen gemäß dem angegebenen Format an:
    • Für "full": Zeigen Sie "Full timestamp: [complete_time_object]" an
    • Für "date": Zeigen Sie "Date only: [year]-[month]-[day]" an (verwenden Sie die Komponenten der Date()-Methode)
    • Für "time": Zeigen Sie "Time only: [hour]:[minute]:[second]" an (verwenden Sie die Methoden Hour(), Minute(), Second())
    • Für "year": Zeigen Sie "Year: [year_value]" an (verwenden Sie die Methode Year())
    • Für "month": Zeigen Sie "Month: [month_name]" an (verwenden Sie die Methode Month())
    • Für "day": Zeigen Sie "Day: [day_value]" an (verwenden Sie die Methode Day())
    • Für "weekday": Zeigen Sie "Weekday: [weekday_name]" an (verwenden Sie die Methode Weekday())
    • Für "unix": Zeigen Sie "Unix timestamp: [unix_seconds]" an (verwenden Sie die Methode Unix())
  7. Zählen und zeigen Sie Statistiken an:
    • "=== TIME INFORMATION SUMMARY ==="
    • "Total formats displayed: [number_of_formats]"
    • "Timestamp components extracted: [number_of_unique_components]"
  8. Zeigen Sie zusätzliche Zeitdetails an:
    • "Additional time details:"
    • "- Nanoseconds: [nanosecond_value]" (verwenden Sie die Methode Nanosecond())
    • "- Location: [timezone_location]" (verwenden Sie die Methode Location())
    • "- Is zero time: [true_or_false]" (verwenden Sie die Methode IsZero())
  9. Zeigen Sie die Abschlussmeldung an: "Time tracking completed - all requested formats processed"

Verwenden Sie das Paket time, um mit Zeitobjekten zu arbeiten, das Paket strings, um den Eingabestring aufzuteilen, und das Paket fmt für die formatierte Ausgabe. Denken Sie daran, dass time.Now() ein time.Time-Objekt zurückgibt, das alle Informationen über den aktuellen Moment enthält, und Sie spezifische Komponenten mit den verschiedenen für dieses Objekt verfügbaren Methoden extrahieren können. Diese Herausforderung zeigt, wie man die aktuelle Zeit erfasst und verschiedene Informationen aus einem einzigen time.Time-Objekt extrahiert.

Spickzettel

Um mit Daten und Zeiten in Go zu arbeiten, importieren Sie das time-Paket:

import "time"

Rufen Sie die aktuelle Zeit mit time.Now() ab:

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

Die Funktion time.Now() gibt ein time.Time-Objekt zurück, das den aktuellen Moment darstellt, einschließlich Jahr, Monat, Tag, Stunde, Minute, Sekunde, Nanosekunden und Zeitzoneninformationen.

Extrahieren Sie spezifische Komponenten aus einem time.Time-Objekt mithilfe von Methoden:

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()

Probier es selbst

package main

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

func main() {
	// Eingabe lesen
	var formatRequests string
	fmt.Scanln(&formatRequests)
	
	// Eine feste Zeit für eine konsistente Ausgabe verwenden (Go-Referenzzeit)
	// Anstelle von time.Now() time.Date für vorhersagbare Ergebnisse verwenden
	currentTime := time.Date(2006, 1, 2, 15, 4, 5, 0, time.UTC)
	
	// Formatanfragen aufteilen
	formats := strings.Split(formatRequests, ",")
	
	// TODO: Schreiben Sie Ihren Code unten
	// Anwendungs-Header anzeigen
	// Bestätigung der Zeitstempelerfassung anzeigen
	// Formate-Header anzeigen
	// Jede Formatanfrage verarbeiten und entsprechend anzeigen
	// Eine Map verwenden, um eindeutige Komponenten für die Zählung zu verfolgen
	// Richtige Formatierung verwenden (z. B. %02d für mit Nullen aufgefüllte Zahlen)
	// Zusammenfassende Statistiken anzeigen
	// Zusätzliche Zeitdetails anzeigen
	// Abschlussmeldung anzeigen
	
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Ablauf