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 zu diesem bestimmten Zeitpunkt – das Jahr, den Monat, den Tag, die Stunde, die Minute, die Sekunde und sogar Nanosekunden. Du wirst dies als Grundlage für alle anderen Zeitoperationen in Go verwenden.

challenge icon

Aufgabe

Einfach

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

Du erhältst eine Eingabe:

  • Eine Zeichenfolge mit durch Kommas getrennten Anforderungen an Anzeigeformate im Format "format1,format2,format3" (z. B. "full,date,time,year,month,day")

Deine Aufgabe ist es:

  1. time.Now() zu verwenden, um die aktuelle Zeit zu erfassen und in einer Variable zu speichern
  2. Die Kopfzeile der Anwendung anzuzeigen: "=== TIME TRACKER APPLICATION ==="
  3. Die Bestätigung der Zeiterfassung anzuzeigen: "Current time captured successfully"
  4. Die Eingabe durch Aufteilen an den Kommas zu verarbeiten, um einzelne Formatanforderungen zu erhalten
  5. Die Kopfzeile für die Formate anzuzeigen: "Displaying time in requested formats:"
  6. Für jede Formatanforderung die Zeitinformationen entsprechend dem angegebenen Format anzuzeigen:
    • Für "full": "Full timestamp: [complete_time_object]" anzeigen
    • Für "date": "Date only: [year]-[month]-[day]" anzeigen (die Komponenten der Methode Date() verwenden)
    • Für "time": "Time only: [hour]:[minute]:[second]" anzeigen (die Methoden Hour(), Minute(), Second() verwenden)
    • Für "year": "Year: [year_value]" anzeigen (die Methode Year() verwenden)
    • Für "month": "Month: [month_name]" anzeigen (die Methode Month() verwenden)
    • Für "day": "Day: [day_value]" anzeigen (die Methode Day() verwenden)
    • Für "weekday": "Weekday: [weekday_name]" anzeigen (die Methode Weekday() verwenden)
    • Für "unix": "Unix timestamp: [unix_seconds]" anzeigen (die Methode Unix() verwenden)
  7. Statistiken zu zählen und anzuzeigen:
    • "=== TIME INFORMATION SUMMARY ==="
    • "Total formats displayed: [number_of_formats]"
    • "Timestamp components extracted: [number_of_unique_components]"
  8. Zusätzliche Zeitdetails anzuzeigen:
    • "Additional time details:"
    • "- Nanoseconds: [nanosecond_value]" (die Methode Nanosecond() verwenden)
    • "- Location: [timezone_location]" (die Methode Location() verwenden)
    • "- Is zero time: [true_or_false]" (die Methode IsZero() verwenden)
  9. Die Abschlussmeldung anzuzeigen: "Time tracking completed - all requested formats processed"

Verwende das Paket time, um mit Zeitobjekten zu arbeiten, das Paket strings, um die Eingabezeichenfolge aufzuteilen, und das Paket fmt für die formatierte Ausgabe. Denke daran, dass time.Now() ein time.Time-Objekt zurückgibt, das alle Informationen über den aktuellen Zeitpunkt enthält, und dass du mithilfe der verschiedenen für dieses Objekt verfügbaren Methoden bestimmte Komponenten extrahieren kannst. Diese Herausforderung zeigt, wie die aktuelle Zeit erfasst und verschiedene Informationen aus einem einzigen time.Time-Objekt extrahiert werden können.

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

Übe selbstständig: Online-Go-Compiler