From: daurnimator Date: Mon, 18 Aug 2014 18:39:08 +0000 (-0400) Subject: examples/os_date: Initial commit X-Git-Url: https://git.madduck.net/etc/awesome.git/commitdiff_plain/073b4c8333742320533a197f553980cc2f626011?ds=inline examples/os_date: Initial commit --- diff --git a/examples/os_date.lua b/examples/os_date.lua new file mode 100644 index 0000000..0164780 --- /dev/null +++ b/examples/os_date.lua @@ -0,0 +1,25 @@ +--[[ +Re-implementation of `os.date` from the standard lua library +]] + +local gettime = require "luatz.gettime".gettime +local new_from_timestamp = require "luatz.timetable".new_from_timestamp +local get_tz = require "luatz.tzcache".get_tz + +local function os_date ( format_string , timestamp ) + format_string = format_string or "%c" + timestamp = timestamp or gettime ( ) + if format_string:sub ( 1 , 1 ) == "!" then -- UTC + format_string = format_string:sub ( 2 ) + else -- Localtime + timestamp = get_tz ( ):localise ( timestamp ) + end + local tt = new_from_timestamp ( timestamp ):normalise ( ) + if format_string == "*t" then + return tt + else + return tt:strftime ( format_string ) + end +end + +return os_date