Module:Unsigned

local p = {}

-- There's probably a way to use strptime or some other more sophisticated way, but you're not supposed to be using a non-timestamp as input anyway.

function endswith(String,End) return End == '' or string.sub(String,-string.len(End)) == End end

function trim(s) return s:gsub("^%s+", ""):gsub("%s+$", ""):gsub("\226\128\142", "") end

function addUtcToStringIfItDoesNotEndWithUtc(s) if s == "" or endswith(s, "~") then return s end if not endswith(s, "(UTC)") then return s .. " (UTC)" end return s end

function p.main(frame) local hopefullyTimestamp = frame.args[1] or os.date('%H:%M, %d %B %Y (%Z)') return addUtcToStringIfItDoesNotEndWithUtc(trim(hopefullyTimestamp)) end

return p