Datum formatieren

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 :wink:

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 :slight_smile:
Gruss fastsnake