東芝から発売されているFlashAirを用いた開発を行う人々向けのまとめwikiです。※本wikiは東芝及びフィックスターズ、キオクシアとは何の関係もありません。お問合わせは管理者へお願いします。

概要

LuaFileSystemで得られる謎の数値を、可読可能な文字列および日付情報に変換します。
ライブラリLib:libFlashTimeに同等の機能があります。

参考:電子工作記録: FlashAirのLuaスクリプトで得たファイル更新時間を文字列に直す
http://gpsnmeajp.sblo.jp/article/181155303.html

ライセンス

スクリプト

function GetFileModificationTime(Fat_binary_time)
   Year = bit32.band (bit32.rshift(Fat_binary_time, 9+16),0x7F) + 1980
   Month = bit32.band (bit32.rshift(Fat_binary_time, 5+16),0x0F)
   Day = bit32.band (bit32.rshift(Fat_binary_time,0+16),0x1F)

   Hour = bit32.band (bit32.rshift(Fat_binary_time, 11),0x1F)
   min = bit32.band (bit32.rshift(Fat_binary_time, 5),0x3F)
   sec = bit32.band (Fat_binary_time,0x1F)*2; --FAT時間は秒数が2秒刻み

   return Year,Month,Day,Hour,min,sec
end

--yyyymmdd_hhmmss.jpgを生成する
function TimeToFileName(Year,Month,Day,Hour,min,sec)
   return string.format("%04d%02d%02d_%02d%02d%02d.jpg",Year,Month,Day,Hour,min,sec)
end

-------------------サンプル----------------------
--Hello.txtの更新時間を取得する
a = lfs.attributes("Hello.txt")

--文字列で得る
Year,Month,Day,Hour,min,sec = GetFileModificationTime(a.modification)
print(Year.."年"..Month.."月"..Day.."日"..Hour.."時"..min.."分"..sec.."秒")

--文字列で得たものをファイル名形式にする
print(TimeToFileName(GetFileModificationTime(a.modification)))

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu

スマートフォンの方は画面下部よりPC版に切り替えることをおすすめします

アクセス解析中

忍者アナライズ

GoogleAnalytics

編集にはIDが必要です