テーブルを使った日付と時間の処理
-- 現在の日付と時間をまとめたテーブルを取得
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)
- オンラインで動作確認したい場合に