Hallo zusammen
Gerne möchte ich in LUA die Datumsausgabe in Textform (Deutsch) einrichten. Also z.B. Dienstag 27.November 2017, leider kriege ich die Tage und Monate
mit fibaro:debug(os.date("Es ist %A %d.%B %Y, %H:%M Uhr."));
nur in Englischer Sprache hin. Weiss vielleicht jemand wie man dies umsetzen könnte?
Vielen Dank, Gruss fastsnake.
Hi,
das funktioniert leider nicht, das gibt LUA nicht her. Kannst es nur selbst übersetzen.
Gruß
So:
function DT(DATETIME)
local WD = {'Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'}
local M = {'Jänner','Februar','März','April','May','Juni','July','August','September','Oktober','November','Dezember'}
local tableDT= (os.date('*t', tonumber(DATETIME)))
tableDT.month = M[tonumber(tableDT.month)]
tableDT.wday = WD[tonumber(tableDT.wday)]
--fibaro:debug (tableDT.year)
--fibaro:debug (tableDT.month)
--fibaro:debug (tableDT.day)
--fibaro:debug (tableDT.wday)
--fibaro:debug (tableDT.hour)
--fibaro:debug (tableDT.min)
--fibaro:debug (tableDT.sec)
return tableDT.wday ..', ' ..tableDT.day ..'. ' ..tableDT.month ..' ' ..tableDT.hour ..':' ..tableDT.min
end
x= DT(os.date())
fibaro:debug (x)
… oder man nutzt eine fertige Funktion
Hallo
Vielen Dank für die raschen Antworten, versuche dies gelegentlich umzusetzen. Danke auch für die tolle Unterstützung!!
Gruss fastsnake
Funktioniert bis auf einen kleinen Schönheitsfehler tadellos. Die Uhr zeigt z.B. 16:9 anstelle 16:09, wenn dieser kleiner
Fehler noch bereinigt werden könnte, wäre die Szene perfekt…!
Gruss fastsnake
Da bei der Uhr in der Minutenanzeige offensichtlich eine “0” fehlt, wird alles unterhalb von 10 Minuten mit einer “0” zuwenig angezeigt. Also 18:1 anstelle 18:01
und 18:0 Uhr statt 18:00.
Habe das Problem auf Umwegen in den Griff bekommen und die Szene wie unten geändert.
Vielen Dank für eure Hilfe…
function DT(DATETIME)
local WD = {'Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'}
local M = {'Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'}
local tableDT= (os.date('*t', tonumber(DATETIME)))
tableDT.month = M[tonumber(tableDT.month)]
tableDT.wday = WD[tonumber(tableDT.wday)]
--fibaro:debug (tableDT.year)
--fibaro:debug (tableDT.month)
--fibaro:debug (tableDT.day)
--fibaro:debug (tableDT.wday)
--fibaro:debug (tableDT.hour)
--fibaro:debug (tableDT.min)
--fibaro:debug (tableDT.sec)
return "Es ist "..tableDT.wday ..', ' ..tableDT.day ..'. ' ..tableDT.month ..' ' ..tableDT.year ..' '..os.date " %H:%M Uhr"
end
x= DT(os.date())
fibaro:debug (x)
Das ist eine andere Möglichkeit die Zeit zu formatieren.
Nachdem LUA ein Interpreter ist muss die Funktion einmalig vor den Aufrufen der Funktion stehen.
function DT(DATETIME)
local WD = {'Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'}
local M = {'Jänner','Februar','März','April','May','Juni','July','August','September','Oktober','November','Dezember'}
local tableDT= (os.date('*t', tonumber(DATETIME)))
tableDT.month = M[tonumber(tableDT.month)]
tableDT.wday = WD[tonumber(tableDT.wday)]
if string.len(tableDT.min) == 1 then
tableDT.min = '0' ..tableDT.min
end
if string.len(tableDT.hour) == 1 then
tableDT.hour = '0' ..tableDT.hour
end
return tableDT.wday ..', ' ..tableDT.day ..'. ' ..tableDT.month ..' ' ..tableDT.hour ..':' ..tableDT.min
end
x= DT(os.date())
fibaro:debug (x)
Hallo mdietinger
Vielen Dank für Deine Mühe, nun habe ich beide Möglichkeiten zur Auswahl
Gruss fastsnake