2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Luaで簡単な日付と時間の処理

Last updated at Posted at 2024-10-10

テーブルを使った日付と時間の処理

-- 現在の日付と時間をまとめたテーブルを取得
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文が最近までなかった

参考

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?