NEWS
Parsen: Platzhalter / oder von bis
-
Hi,
ich möchte gerne aus diesem String:Sonnenaufgang":"val":"2020-11-30T07:14:06.425Z"
nur die 07:14 auslesen und das am liebsten noch als Zahl, also 0714.
- Frage: gibt es Platzhalter, wo ich z.Bsp sagen kann ab:
Sonnenaufgang":"val":"????-??-??T
oder - Frage:
Starte nach Sonnenaufgang von Zeichen 28 bis 33
Ich bin mir ganz sicher, wenn man weiß wie es geht, ist es ganz einfach
- Frage: gibt es Platzhalter, wo ich z.Bsp sagen kann ab:
-
@Ioniq-2018 "2020-11-30T07:14:06.425Z" ist ja ein gültiges JavaScript Datum. Damit solltest du ganz einfach ein Datumsobjekt bekommen können:
let input = 'Sonnenaufgang":"val":"2020-11-30T07:14:06.425Z"'; let parts = input.split('":"'); let date = new Date(parts[2].replace('"', ''));
Auffällig ist, dass deine Zeit als UTC (Z=Zulu) Zeit angegeben wird. Wenn du den Code oben ausführst, wird dir die Zeit dann in Lokaler Zeit angegeben (also 08:06).
-
@Ioniq-2018 sagte:
nur die 07:14 auslesen
Das ist UTC. Hole doch gleich die Zeit des Sonnenaufgangs in Lokalzeit ab:
formatDate(getAstroDate("sunrise"), "hh:mm")
-
@UncleSam
Danke für das Beantworten der Frage. Aber ich denke es wird dann die Uhrzeit 14:06 raus kommen. die 07 hängt direkt hinter dem T ! Und das mit dem Z, da muss ich mal nachschauen.@paul53
Das wäre die Antwort auf Frage Nr. 3, (die ich nicht gestellt habe) dass es bestimmt noch was einfacheres gibt. Trotzdem vielen Dank. Wahrscheinlich werde ich das aber sogar übernehmen.
Aber die beiden Fragen von oben sind noch offen. Weil die Lösung davon würde ich noch in andere Abfragen einbauen wollen. -
@Ioniq-2018 sagte in Parsen: Platzhalter / oder von bis:
Aber die beiden Fragen von oben sind noch offen
Das sind IMHO keine Zwei Fragen, sondern nur ein.
ich weiß nicht was du mit Platzhalter meinst.T(.{5})
holt dir was du willst -
@Ioniq-2018 sagte:
Aber die beiden Fragen von oben sind noch offen.
Eine Platzhalter-Lösung kenne ich nicht. Aber einen Teilstring zu extrahieren ist einfach. Wenn das "T" nur einmal vorkommt, z.B. so:
let input = '"Sonnenaufgang":"val":"2020-11-30T07:14:06.425Z"'; let pos = input.indexOf('T') + 1; let time = input.substr(pos, 5);
Der Wert sieht übrigens nach einem JSON aus.
-
@Ioniq-2018 sagte in Parsen: Platzhalter / oder von bis:
@UncleSam
Danke für das Beantworten der Frage. Aber ich denke es wird dann die Uhrzeit 14:06 raus kommen. die 07 hängt direkt hinter dem T ! Und das mit dem Z, da muss ich mal nachschauen.Hast du es ausprobiert?! Wie gesagt, der Text ist ein korrekter JavaScript Date Wert in UTC. Wenn ich das in der Konsole ausführe, kommt folgendes raus:
Und wenn du dir das Problem wirklich kompliziert machen willst, mit etwas was mit Platzhaltern verglichen werden kann. Dann versuch den folgenden regulären Ausdruck:
input.replace(/^.+T(\d+):(\d+):\d+.+$/, '$1$2');
Und damit wir nicht wieder die Diskussion von oben haben:
-
Danke für eure Tipps. Damit komme ich gut weiter. Übrigens scheint der Platzhalter der "." zu sein. So wie das "*" bei Windows.
-