function Time:newFromString(timeStr)
local h, m, s = 0, 0, 0
local parts = {}
for part in timeStr:gmatch("%d+") do
table.insert(parts, tonumber(part))
end
if #parts == 3 then
h, m, s = parts[1], parts[2], parts[3]
elseif #parts == 2 then
m, s = parts[1], parts[2]
elseif #parts == 1 then
s = parts[1]
end
return Time(h, m, s)
end