os.time und os.date
Ermitteln Sie die aktuelle Zeit.
os.time und os.date ist eine kostenlose Lua Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Lua Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Lua Academy-Kurs umfasst insgesamt 4 Lektionen.
Warum Zeit wichtig ist
Programme müssen häufig die aktuelle Zeit kennen. Ein Spiel zeichnet auf, wann Sie eine Punktzahl erreicht haben, eine Protokolldatei versieht jedes Ereignis mit einem Zeitstempel und eine Erinnerungs-App zählt bis zu einem Termin herunter.
Lua stellt seine Zeitwerkzeuge in der integrierten os-Bibliothek bereit. Die beiden wichtigsten sind os.time und os.date. In dieser Lektion lernen Sie beide kennen.
os.time gibt eine Zahl zurück
os.time() ohne Argumente gibt den aktuellen Zeitpunkt als einzelne Zahl zurück.
Diese Zahl entspricht der Anzahl der Sekunden seit einem festen Zeitpunkt in der Vergangenheit, der Epoche. Sie ist einfach eine Ganzzahl, die Sie speichern, vergleichen oder für Berechnungen verwenden können.
local now = os.time()
print(now)
print(type(now))Die Epoche
Auf den meisten Systemen ist die Epoche der 1. Januar 1970 um 00:00 Uhr UTC. os.time() gibt also an, wie viele Sekunden seit diesem Zeitpunkt vergangen sind.
Eine große Zahl wie 1700000000 ist ganz normal. Sie erhöht sich jede Sekunde um eins und eignet sich daher ideal, um zwei Zeitpunkte zu vergleichen.
local seconds = os.time()
print("Seconds since 1970:", seconds)os.date gibt Text zurück
Eine reine Sekundenanzahl ist schwer zu lesen. os.date() wandelt die Zeit in menschenfreundlichen Text um.
Ohne Argumente gibt die Funktion einen lesbaren String zurück, der das aktuelle Datum und die aktuelle Uhrzeit beschreibt und die lokalen Einstellungen Ihres Systems verwendet.
print(os.date())os.date mit einem Format
Normalerweise übergeben Sie os.date eine Formatzeichenkette. Spezielle Codes, die mit % beginnen, werden durch Bestandteile des Datums ersetzt.
%Y steht für das vierstellige Jahr, %m für den Monat und %d für den Tag. Anderer Text bleibt unverändert.
print(os.date("Year: %Y"))
print(os.date("%Y-%m-%d"))Zeit und Datum kombinieren
os.date kann ein zweites Argument entgegennehmen: eine Zeitangabe als Zahl. Übergeben Sie das Ergebnis von os.time, formatiert die Funktion genau diesen Zeitpunkt.
Ohne das zweite Argument verwendet sie die aktuelle Zeit. Daher beschreiben diese beiden Aufrufe denselben Zeitpunkt.
local t = os.time()
print(os.date("%Y-%m-%d", t))Lokalzeit und UTC
Standardmäßig verwendet os.date Ihre lokale Zeitzone. Um stattdessen UTC (koordinierte Weltzeit) zu erhalten, beginnen Sie die Formatzeichenkette mit einem Ausrufezeichen !.
Das ist für Server und weltweit eingesetzte Apps wichtig, bei denen alle dieselbe Zeitbasis verwenden sollen.
print("Local:", os.date("%H:%M"))
print("UTC: ", os.date("!%H:%M"))Die Tabellenform
Wenn Sie "*t" als Format übergeben, gibt os.date statt eines Strings eine Tabelle zurück.
Die Tabelle enthält benannte Felder wie year, month, day, hour, min und sec. Das ist praktisch, wenn Sie nur einen einzelnen Bestandteil benötigen.
local d = os.date("*t")
print(d.year, d.month, d.day)
print(d.hour, d.min, d.sec)Ein Feld auslesen
Da die Tabellenform benannte Felder liefert, können Sie ganz einfach nur den aktuellen Monat oder nur die aktuelle Stunde auslesen.
Verwenden Sie !*t für die UTC-Version der Tabelle. Jedes Feld ist eine einfache Zahl, die Sie in Bedingungen verwenden können.
local d = os.date("*t")
if d.hour < 12 then
print("Good morning")
else
print("Good afternoon")
endos.time aus einer Tabelle
os.time funktioniert auch in umgekehrter Richtung. Übergeben Sie eine Tabelle mit year, month und day, gibt die Funktion die Sekundenanzahl für dieses Datum zurück.
So können Sie einen Zeitwert für jedes von Ihnen gewünschte Kalenderdatum erstellen.
local t = os.time({year=2020, month=1, day=1, hour=0})
print(t)
print(os.date("%Y-%m-%d", t))Hin und zurück
Sie können frei zwischen den beiden Formen wechseln: os.time wandelt eine Tabelle in eine Zahl um, und os.date("*t", n) wandelt eine Zahl wieder in eine Tabelle um.
Dieser Hin-und-zurück-Weg bildet die Grundlage für Datumsberechnungen, die Sie in späteren Lektionen erkunden werden.
local n = os.time({year=2021, month=6, day=15})
local back = os.date("*t", n)
print(back.year, back.month, back.day)Kurzer Test
Testen Sie Ihr Verständnis der beiden wichtigsten Funktionen.
Zusammenfassung
os.time() liefert den aktuellen Zeitpunkt als Anzahl der Sekunden seit der Epoche. os.date() wandelt die Zeit mithilfe von %-Formatcodes in Text oder mit "*t" in eine Tabelle um.
Fügen Sie ! für UTC hinzu und übergeben Sie eine Zeitangabe als zweites Argument, um einen bestimmten Zeitpunkt zu formatieren. Zusammen decken diese Funktionen fast alle Anforderungen an Datums- und Zeitangaben in Lua ab.
Häufig gestellte Fragen
Ist die Lektion „os.time und os.date“ kostenlos?
Ja — der vollständige Text von „os.time und os.date“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Lua Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Lua Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „os.time und os.date“?
Ermitteln Sie die aktuelle Zeit. Du übst Lua Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Lua Academy zu starten?
Keine Vorkenntnisse erforderlich. Lua Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „os.time und os.date“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Lua Academy-Lektion Code schreiben und ausführen?
Ja. Jede Lua Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- os.time und os.date
- Daten formatieren
- Zeitberechnungen
- Dauern messen