NodeRed newDate() formatierung enthält komma im Jahr

Gast #7221939
hallo,
ich möchte in NodeRed das aktuelle Datum in folgendem Format speichern
DD_MM_JJJJ umd so die datei zu benennen (DD_MM_JJJ.txt) und dort einen 
log zu speichern.
Dazu habe ich ein Funktions-node erstellt um das Datum zu formatieren.
Mein Problem ist aber momentan das Jahr
1
var d = new Date();
2
var t = d.getTime();
3

4

5
if(d.getDate() < 10) {
6
    day = "0" + d.getDate().toLocaleString();
7
}
8
else {
9
    day = d.getDate().toLocaleString();
10
}
11

12
if((d.getMonth() + 1) < 10) {
13
    month = "0" + (d.getMonth() + 1).toLocaleString();
14
}
15
else {
16
    month = (d.getMonth() + 1).toLocaleString();
17
}
18

19
year = d.getFullYear().toLocaleString();
20
var filename = day + "_" + month + "_" + year;
21
msg.payload = filename;
22
return msg;
Hinter dem Funktions-node habe ich ein debug-node
dort wird als date
"15_10_2,022"
ausgegeben.
woher kommt das komma bei 2022?

Auch wenn ich filename nur
1
msg.payload = d.getFullYear().toLocaleString();
2
return msg;
mache, steht das komma darinn.
Gast
Johannes schrieb:
> ich möchte in NodeRed das aktuelle Datum in folgendem Format speichern
> DD_MM_JJJJ umd so die datei zu benennen (DD_MM_JJJ.txt) und dort einen
> log zu speichern.

Viel Spaß beim Suchen nach den Dateien. Das Format eignet sich nicht 
einmal, wenn du auf die Monatsenddateien zugreifen willst.
Nicht ohne Grund wurde von der ISO das Datumsformat in der Form 
YYYY-MM-DD o.ä. festgelegt (ISO 8601) und in Deutschland in der Norm DIN 
EN 28601 übernommen.
Gast
Wolfgang schrieb:
> Viel Spaß beim Suchen nach den Dateien. Das Format eignet sich nicht
> einmal, wenn du auf die Monatsenddateien zugreifen willst.
> Nicht ohne Grund wurde von der ISO das Datumsformat in der Form
> YYYY-MM-DD o.ä. festgelegt (ISO 8601) und in Deutschland in der Norm DIN
> EN 28601 übernommen.

Ja, da hast du recht.

Habe es jetzt auch mit dem komma hinbekommen und den namen der Textdatei 
umbenannt.
Funktion 1:
1
var d = new Date();
2
var payload = {
3
    'month': d.getMonth() + 1,
4
    'day': d.getDate(),
5
    'year': d.getFullYear(),
6
    'hours': d.getHours(),
7
    'mins': d.getMinutes(),
8
    'secs': d.getSeconds(),
9
    'msecs': d.getMilliseconds()
10
}
11
msg.payload = payload;
12
return msg;

Funktion 2:
1
var filename;
2
var absoluteFilename;
3

4
var mainPath = "/home/NodeRed/logs/"
5

6
filename = msg.payload.year + "_" + msg.payload.month + "_" + msg.payload.day + "." + "log.txt";
7
absoluteFilename = mainPath + filename;
8
msg.payload = absoluteFilename;
9
return msg;

Das Problem mit dem Komma hatte was damit zu tun, ob ich den Wert mit
1
toLocalString()
oder
1
toString()
umwandle
Johannes schrieb:
> Das Problem mit dem Komma hatte was damit zu tun, ob ich den Wert
> mit toLocalString()
> oder toString()
> umwandle

Wenigstens hast du die "richtige" Lösung gewählt, und das toLocaleString 
rausgenommen.
Die "falsche" Lösung wäre gewesen, die Spracheinstellungen deines 
Betriebssystems zu verwursten bis das Tausender-Trennzeichen weg ist.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 4 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.