os.time et os.date
Obtenez l’heure actuelle.
os.time et os.date est une leçon Lua Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Lua Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Lua Academy comprend 4 leçons au total.
Pourquoi time est important
Les programmes ont souvent besoin de connaître le time actuel. Un jeu enregistre le moment où vous avez marqué des points, un fichier de journalisation horodate chaque événement et une application de rappels compte le temps restant avant une échéance.
Lua regroupe ses outils de time dans la bibliothèque intégrée os. Les deux fonctions principales sont os.time et os.date. Vous découvrirez les deux dans cette leçon.
os.time renvoie un nombre
os.time() sans argument renvoie le moment actuel sous la forme d'un seul nombre.
Ce nombre correspond au nombre de secondes écoulées depuis un point fixe du passé, appelé l'époque. C'est simplement un entier : vous pouvez donc le stocker, le comparer ou effectuer des calculs avec lui.
local now = os.time()
print(now)
print(type(now))L'époque
Sur la plupart des systèmes, l'époque correspond à minuit le 1er janvier 1970, en UTC. Ainsi, os.time() vous indique combien de secondes se sont écoulées depuis cette date.
Un grand nombre comme 1700000000 est tout à fait normal. Il augmente d'une unité chaque seconde, ce qui le rend idéal pour comparer deux moments.
local seconds = os.time()
print("Seconds since 1970:", seconds)os.date renvoie du texte
Un simple nombre de secondes est difficile à lire. os.date() transforme le time en texte facile à comprendre.
Appelée sans argument, cette fonction renvoie une chaîne lisible décrivant la date et le time actuels, selon les paramètres locaux de votre système.
print(os.date())os.date avec un format
En général, vous transmettez à os.date une chaîne de format. Les codes spéciaux commençant par % sont remplacés par des éléments de la date.
%Y représente l'année à quatre chiffres, %m le mois et %d le jour. Tout autre texte reste inchangé.
print(os.date("Year: %Y"))
print(os.date("%Y-%m-%d"))Combiner time et date
os.date peut recevoir un deuxième argument : un nombre représentant le time. Transmettez-lui le résultat de os.time pour formater ce moment précis.
Sans deuxième argument, la fonction utilise le time actuel ; ces deux appels décrivent donc le même instant.
local t = os.time()
print(os.date("%Y-%m-%d", t))Heure locale ou UTC
Par défaut, os.date utilise votre fuseau horaire local. Pour obtenir l'UTC à la place, commencez la chaîne de format par un point d'exclamation !.
C'est important pour les serveurs et les applications utilisés partout dans le monde, car chacun doit se référer à la même horloge.
print("Local:", os.date("%H:%M"))
print("UTC: ", os.date("!%H:%M"))La forme table
Si vous passez "*t" comme format, os.date renvoie une table plutôt qu'une chaîne.
Cette table contient des champs nommés comme year, month, day, hour, min et sec. C'est pratique lorsque vous n'avez besoin que d'une seule valeur.
local d = os.date("*t")
print(d.year, d.month, d.day)
print(d.hour, d.min, d.sec)Lire un seul champ
Comme la forme table fournit des champs nommés, récupérer uniquement le mois ou l'heure actuels est très simple.
Utilisez !*t pour obtenir la version UTC de la table. Chaque champ est un simple nombre que vous pouvez utiliser dans des conditions.
local d = os.date("*t")
if d.hour < 12 then
print("Good morning")
else
print("Good afternoon")
endos.time à partir d'une table
os.time fonctionne également dans l'autre sens. Donnez-lui une table contenant year, month et day, et il renverra le nombre de secondes correspondant à cette date.
Vous pouvez ainsi construire une valeur de time pour n'importe quelle date précise de votre choix.
local t = os.time({year=2020, month=1, day=1, hour=0})
print(t)
print(os.date("%Y-%m-%d", t))Conversion aller-retour
Vous pouvez passer librement d'une forme à l'autre : os.time transforme une table en nombre et os.date("*t", n) transforme un nombre en table.
Cette conversion aller-retour constitue la base des calculs de date, que vous découvrirez dans les leçons suivantes.
local n = os.time({year=2021, month=6, day=15})
local back = os.date("*t", n)
print(back.year, back.month, back.day)Vérification rapide
Vérifiez votre compréhension des deux fonctions principales.
Récapitulatif
os.time() fournit le moment actuel sous la forme d'un nombre de secondes écoulées depuis l'époque. os.date() transforme le time en texte à l'aide des codes de format %, ou en table avec "*t".
Ajoutez ! pour utiliser UTC et transmettez un nombre représentant le time comme deuxième argument afin de formater un instant précis. Ensemble, ces fonctions couvrent presque tous les besoins liés aux dates en Lua.
Questions Fréquemment Posées
La leçon « os.time et os.date » est-elle gratuite ?
Oui — le texte complet de « os.time et os.date » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Lua Academy, passe à CoddyKit PRO. Le cours Lua Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « os.time et os.date » ?
Obtenez l’heure actuelle. Tu pratiques Lua Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Lua Academy ?
Aucune expérience préalable n'est requise. Lua Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « os.time et os.date » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Lua Academy ?
Oui. Chaque leçon Lua Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- os.time et os.date
- Formater des dates
- Arithmétique temporelle
- Mesurer des durées