テーブルを使った日付と時間の処理
-- 現在の日付と時間をまとめたテーブルを取得
datetable = os.date("*t")
-- 年(4桁)
print(string.format("%d", datetable.year))
-- 年(2桁) ※テーブルには2桁の年がないため算出
print(string.format("%d", datetable.year % 100))
-- 月(1~12)
print(string.format("%d", datetable.month))
-- 日(1~31)
print(string.format("%d", datetable.day))
-- 時(0~23)
print(string.format("%d", datetable.hour))
-- 分(0~59)
print(string.format("%d", datetable.min))
-- 秒(0~59)
print(string.format("%d", datetable.sec))
-- 曜日(1:日曜~7:土曜)
print(string.format("%d", datetable.wday))
-- 年通算日(1~366)
print(string.format("%d", datetable.yday))
-- 夏時間(true/false)
print(datetable.isdst)
補足
datetable.yearは、datetable["year"]と書いても同じ補足:string.format()の書式一覧
%d、%i:整数%f:浮動小数点数%o:8進数表示%x:16進数表示(a~fが小文字)%X:16進数表示(A~Fが大文字)%10d:幅10の整数%05d:5桁のゼロ埋め整数(例:整数の23を表示した場合は、00023)%s:文字列%%:%記号そのものを表す
書式を指定した日付と時間の処理
-- 年(4桁)
print(os.date("%Y"))
-- 年(2桁)
print(os.date("%y"))
-- 月(01~12)
print(os.date("%m"))
-- 日(01~31)
print(os.date("%d"))
-- 時(00~23)
print(os.date("%H"))
-- 時(01~12)
print(os.date("%I"))
-- 分(00~59)
print(os.date("%M"))
-- 秒(00~59)
print(os.date("%S"))
-- 曜日(0:日曜~6:土曜)
print(os.date("%w"))
-- 年通算日(001~366)
print(os.date("%j"))
補足:年月日と時分をつなげた文字列を作成する
-- 文字列は「..」で連結します datetime = os.date("%y") .. os.date("%m") .. os.date("%d") .. "_" .. os.date("%H") .. os.date("%M") print(datetime) -- 241012_0326(※2024年10月12日03時24分の場合)
余談:Luaにない構文
-
switch文がない -
++、--演算子がない -
goto文が最近までなかった
参考
-
公式リファレンス
- 最新のリファレンスは英語のみ
-
日本語のリファレンス
- Lua 5.4のリファレンス(※現時点の最新リリースは5.4.6)
-
オンラインLuaコンパイラ(myCompiler)
- オンラインで動作確認したい場合に