Konvertierungsfunktionen conversion-functions
Mit Konvertierungsfunktionen können Sie Daten in Ihren Journey-Ausdrücken von einem Typ in einen anderen umwandeln. Diese Funktionen sind für die Gewährleistung der Datenkompatibilität und der ordnungsgemäßen Typverarbeitung bei der Arbeit mit verschiedenen Datenquellen und Vorgängen von entscheidender Bedeutung.
Verwenden Sie Konvertierungsfunktionen für Folgendes:
- Konvertieren von Zeichenfolgewerten in numerische oder boolesche Typen oder Datentypen (toInteger, toDecimal, toBool)
- Umwandeln von Datums- und Zeitangaben zwischen verschiedenen Formaten und Darstellungsweisen (toDateTime, toDateTimeOnly, toDateOnly)
- Umrechnen von Zahlenwerten zwischen Ganzzahl und Dezimalzahl (toInteger, toDecimal)
- Konvertieren von Werten in Zeichenfolgenformat (toString) oder Dauer (toDuration)
- Gewährleisten von Typenkompatibilität bei Vergleichen und Vorgängen
- Verarbeiten von Daten aus externen Quellen, die unterschiedliche Typformate aufweisen können
Jede Konvertierungsfunktion verarbeitet typspezifische Regeln und Randfälle automatisch, wodurch die Datenumwandlung in Ihren Journey-Ausdrücken zuverlässiger und vorhersehbarer wird.
Kurzübersicht quick-reference
toDateTime, wenn Zeitzonen wichtig sind (z. B. beim Planen von Nachrichten oder beim Vergleichen von Ereignis-Zeitstempeln über Regionen hinweg). Verwenden Sie toDateTimeOnly, wenn nur die lokale Datums-/Uhrzeitangabe relevant ist und die Zeitzone ignoriert werden kann (z. B. beim Vergleichen von Kalenderdaten in einer Bedingung).Häufige Fehler pitfalls
- Zeitzone muss eine Zeichenfolgenkonstante sein — Das Zeitzonenargument in
toDateTimekann kein Feldverweis oder dynamischer Ausdruck sein. Übergeben Sie immer eine literale Zeichenfolge wie"UTC"oder"Europe/Paris". - ISO-8601-Format, das für Zeichenfolgeneingaben erforderlich ist - Stellen Sie beim Übergeben einer Zeichenfolge an
toDateTimeodertoDateTimeOnlysicher, dass sie dem ISO-8601-Format entspricht (z. B."2023-08-18T23:17:59.123Z"). Falsch formatierte Zeichenfolgen geben null ohne Fehler zurück. - Epochenwerte sind in Millisekunden -
toDateTime(1560762190189)erwartet Millisekunden. Wenn Ihre Quelle Unix-Zeitstempel in Sekunden bereitstellt, multiplizieren Sie zuerst mit 1000 (z. B.toDateTime(myField * 1000)). - toBool mit unerwarteten Zeichenfolgen —
toBoolgibt nur danntruezurück, wenn der Zeichenfolgenwert genau"true"ist. Jede andere Zeichenfolge (einschließlich"1","yes","TRUE") gibtfalsezurück.
toBool toBool
Konvertiert einen Argumentwert je nach Typ in einen booleschen Wert.
- Von Zeichenfolge: Versucht, den Zeichenfolgenwert in einen booleschen Wert zu konvertieren, von „true“, wenn der Zeichenfolgenwert „true“ ist, andernfalls „false“
- Von numerisch: „true“, wenn der numerische Wert ungleich 0 ist, andernfalls „false“
toBool(<parameter>)- decimal
- boolean
- string
- Ganzzahl
toBool(<decimal>)
toBool(<boolean>)
toBool(<string>)
toBool(<integer>)
Geben einen booleschen Wert zurück.
toBool("true")
toBool(1)
Gibt „true“ zurück.
toBool("this is not a boolean")
Gibt „false“ zurück.
toDateOnly toDateOnly
Konvertiert ein Argument in einen Wert vom Typ dateOnly. Weitere Informationen zu Datentypen finden Sie in diesem Abschnitt.
toDateOnly(<parameters>)| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 | |
|---|---|
| Parameter | Typ |
| Zeichenfolgendarstellung eines Datums als „JJJJ-MM-TT“ (XDM-Format). Unterstützt auch das ISO-8601-Format: nur der Teil mit dem vollständigen Datum wird berücksichtigt (siehe RFC 3339, Abschnitt 5.6 | string |
| Datum/Uhrzeit | dateTime |
| Datum/Uhrzeit ohne Zeitzone | dateTimeOnly |
| Ganzzahliger Wert einer Epoche in Millisekunden | Ganzzahl |
toDateOnly(<dateTime>)
toDateOnly(<dateTimeOnly>)
toDateOnly(<string>)
toDateOnly(<integer>, <integer>, <integer>)
Gibt einen Wert vom Typ dateOnly zurück.
toDateOnly("2023-08-18")
toDateOnly("2023-08-18T00:00:00.000Z")
toDateOnly("2023-08-18T00:00:00")
alle geben ein dateOnly-Objekt zurück, das den 18.08.2023 darstellt.
toDateOnly(#{ExperiencePlatform.ProfileFieldGroup.person.birthDate})
Gibt ein dateOnly zurück.
toDateTime toDateTime
Konvertiert Parameter je nach Typ in einen Datum-/Uhrzeit-Wert.
toDateTime(<parameters>)| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 | |
|---|---|
| Parameter | Beschreibung |
| string | Datum/Uhrzeit im ISO-8601-Format. Eine Zeichenfolgendarstellung eines Datums-/Uhrzeitwerts mit Zeitzoneninformationen |
| string | Zeitzonen-ID. Eine Zeitzonenkennung (z. B. „UTC“, „Europe/Paris“) |
| dateOnly | Stellt ein reines Datum ohne Zeitzone im Format „Jahr-Monat-Tag“ dar |
| dateTimeOnly | Stellt Datum und Uhrzeit ohne Zeitzone im Format „Jahr-Monat-Tag-Stunde-Minute-Sekunde-Millisekunde“ dar |
| integer | Ganzzahliger Wert einer Epoche in Millisekunden |
toDateTime(<string>)
toDateTime(<string>, <dateOnly>)
toDateTime(<string>, <dateTimeOnly>)
toDateTime(<integer>)
Gibt einen Datum/Uhrzeit-Wert zurück.
toDateTime("2023-08-18T23:17:59.123Z")
Gibt 2023-08-18T23:17:59.123Z zurück.
Die ISO-8601-Zeichenfolge enthält bereits Zeitzoneninformationen.
toDateTime("Europe/Paris", toDateOnly("2023-08-18"))
Gibt „2023-08-18T00:00:00.000+02:00“ zurück
Dadurch wird ein dateTime-Wert erstellt, indem eine Zeitzone mit einem reinen Datumswert kombiniert wird. Die Uhrzeit wird in der angegebenen Zeitzone auf Mitternacht (00:00:00) festgelegt.
toDateTime("UTC", toDateTimeOnly("2023-08-18T23:17:59.123"))
Gibt „2023-08-18T23:17:59.123Z“ zurück
Dadurch wird ein dateTime-Wert erstellt, indem eine Zeitzone auf einen dateTimeOnly-Wert angewendet wird (der keine Zeitzoneninformationen enthält).
toDateTime(1560762190189)
Gibt „2019-06-17T09:03:10.189Z“ zurück
Konvertiert einen Unix-Zeitstempel in Millisekunden in einen dateTime-Wert.
toDateTimeOnly toDateTimeOnly
Konvertiert einen Argumentwert in einen reinen Datum-/Uhrzeit-Wert.
toDateTimeOnly(<parameters>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parameter | Typ |
| Datum/Uhrzeit im ISO-8601-Format oder im XDM-Datumsformat “JJJJ-MM-TT” | string |
| Datum/Uhrzeit | dateTime |
toDateTimeOnly(<dateTime>)
toDateTimeOnly(<string>)
Gibt einen Datum/Uhrzeit-Wert ohne Berücksichtigung der Zeitzone zurück.
toDateTimeOnly ("2023-08-18")
Gibt einen Datum/Uhrzeit-Wert zurück, der 2023-08-18T00:00:00.000 entspricht.
toDateTimeOnly(now())
toDecimal toDecimal
Konvertiert einen Argumentwert je nach Typ in einen Dezimalwert.
toDecimal(<parameter>)| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 | |
|---|---|
| Parameter | Beschreibung |
| string | konvertiert den Zeichenfolgenwert in eine Dezimalzahl |
| dateTime | konvertiert das Datum in die Zahl der Millisekunden (Millisekunden der Epoche) |
| boolean | wandelt den booleschen Wert in 1 um, wenn „true“, und in 0, wenn „false“ |
| integer | wird in eine Dezimalzahl konvertiert (Beispiel: 1 wird zu 1,0) |
toDecimal(<integer>)
toDecimal(<decimal>)
toDecimal(<string>)
toDecimal(<boolean>)
Gibt eine Dezimalzahl zurück.
toDecimal("4.0")
Gibt 4.0 zurück.
toDuration toDuration
Konvertiert einen Argumentwert in eine Dauer. Weitere Informationen zu Datentypen finden Sie auf dieser Seite.
toDuration(<parameter>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parameter | Beschreibung |
| string | Formate, die auf dem ISO 8601-Dauerformat PnDTnHnMn.nS basieren, wobei Tage als genau 24 Stunden betrachtet werden. |
| integer | Zahl der Millisekunden |
Wenn Zeichenfolgenausdruck: Akzeptierte Formate basieren auf dem ISO 8601-Dauerformat PnDTnHnMn.nS, wobei Tage als genau 24 Stunden betrachtet werden.
Die Zeichenfolge beginnt mit einem optionalen Zeichen, markiert durch das negative oder positive ASCII-Symbol. Bei negativen Werten wird der gesamte Zeitraum negiert. Der ASCII-Buchstabe „P“ folgt in Groß- oder Kleinschreibung. Dann gibt es vier Bereiche, die jeweils aus einer Zahl und einem Suffix bestehen. Die Bereiche weisen die ASCII-Suffixe von „D“, „H“, „M“ und „S“ für Tage, Stunden, Minuten und Sekunden auf, akzeptiert in Groß- oder Kleinschreibung. Die Suffixe müssen in richtiger Reihenfolge erscheinen. Der ASCII-Buchstabe „T“ muss vor dem ersten Auftreten, so vorhanden, einer Stunde, einer Minute oder eines zweiten Bereichs stehen. Es muss mindestens einer der vier Bereiche vorhanden sein und wenn „T“ vorhanden ist, muss mindestens ein Bereich auf das „T“ folgen. Der Zahlenteil der einzelnen Bereiche muss aus einer oder mehreren ASCII-Ziffern bestehen. Der Zahl kann das negative oder positive ASCII-Symbol vorangestellt werden. Die Zahl der Tage, Stunden und Minuten muss zu einem „long“ ausgewertet werden. Die Zahl der Sekunden muss zu einem „long“ mit optionalem Bruch ausgewertet werden. Das Dezimalzeichen kann ein Punkt oder ein Komma sein. Der Bruchteil kann zwischen null und neun Stellen aufweisen.
toDuration(<string>)
toDuration(<integer>)
Gibt eine Dauer zurück.
toDuration("PT10H")
Gibt eine Dauer von 10 Stunden zurück.
toDuration("PT4S")
Gibt eine Dauer von 4 Sekunden zurück.
toDuration(4000)
Gibt eine Dauer von 4 Sekunden zurück.
toInteger toInteger
Konvertiert einen Argumentwert in eine Ganzzahl.
toInteger(<parameter>)| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 | |
|---|---|
| Parameter | Beschreibung |
| string | konvertiert den Zeichenfolgenwert in eine Ganzzahl |
| dateTime | konvertiert das Datum in die Zahl der Millisekunden (Millisekunden der Epoche) |
| decimal | konvertiert in eine Ganzzahl, indem der Dezimalteil entfernt wird (Beispiel: 1.5 wird zu 1) |
| boolean | wandelt den booleschen Wert in 1 um, wenn „true“, und in 0, wenn „false“ |
toInteger(<dateTime>)
toInteger(<decimal>)
toInteger(<integer>)
toInteger(<string>)
toInteger(<boolean>)
Gibt eine Ganzzahl zurück.
toInteger("4")
Gibt 4 zurück.
toString toString
Konvertiert einen Argumentwert je nach Typ in einen Zeichenfolgenwert. Weitere Informationen zu Datentypen finden Sie auf dieser Seite.
toString(<parameter>)| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 | |
|---|---|
| Parameter | Beschreibung |
| dateTime | konvertiert das Datum in das UTC-Datumsformat |
| dateTimeOnly | konvertiert das Datum in das UTC-Datumsformat |
| duration | konvertiert in die entsprechende Anzahl von Millisekunden als Zeichenfolge |
| integer | konvertiert den Wert in eine Zeichenfolgendarstellung (1 wird zu „1“) |
| decimal | konvertiert den Wert in eine Zeichenfolgendarstellung (1,5 wird zu „1,5“) |
| boolean | konvertiert den booleschen Wert in ‘true’, wenn „true“, in ‘false’, wenn „false“ |
toString(<dateTimeOnly>)
toString(<dateTime>)
toString(<duration>)
toString(<boolean>)
toString(<integer>)
toString(<decimal>)
Gibt eine Zeichenfolge zurück.
toString(4)
Gibt „4“ zurück.
toString(#{ExperiencePlatform.test_date.person.birthDate}))
Gibt die Zeichenfolgendarstellung des angegebenen dateOnly-Feldes (XDM-Datumsfeld) zurück, beispielsweise „18.08.2023“.
toString(toDuration(1520))
Gibt „PT1.52S“ zurück.
Dieser Abschnitt enthält strukturiertes Wissen zur Unterstützung von Interpretation, Abrufen und Antworten auf Fragen zu diesem Thema.
Zum vollständigen Verständnis sollten diese Informationen mit der Dokumentation auf dieser Seite kombiniert werden. Keine der beiden Quellen ist für Einzelpersonen gedacht. Die Seite beschreibt die Funktion, während dieser Abschnitt zusätzlichen Kontext bietet, der dabei hilft, Begriffe, Absichten, Anwendbarkeit und Begrenzungen zu unterscheiden.
- TL;DR: Auf dieser Seite werden alle Konversionsfunktionen in AJO-Journey-Ausdrücken dokumentiert und erläutert, wie Werte zwischen Typen wie Zeichenfolge, Ganzzahl, Dezimalzahl, Boolesch, Datum, Datum/Uhrzeit und Dauer transformiert werden.
intents:
- Konvertieren einer Zeichenfolge oder einer Epochenzahl in eine Zeitzonen-abhängige Datums-/Uhrzeitangabe mithilfe von
toDateTime - Konvertieren einer Zeichenfolge oder einer Datetime in eine Datetime ohne Zeitzone mithilfe von
toDateTimeOnly - Extrahieren eines reinen Datumswerts (Jahr-Monat-Tag) aus einer Zeichenfolge oder einem Datum/Uhrzeit-Wert mithilfe von
toDateOnly - Wandeln Sie einen Wert mithilfe von
toInteger,toDecimalodertoBoolin eine Ganzzahl, eine Dezimalzahl oder einen booleschen Wert um - Serialisieren eines beliebigen Werts in seine Zeichenfolgendarstellung mithilfe von
toString - Konvertieren einer Zeichenfolge oder einer Ganzzahl in eine Dauer mithilfe von
toDuration
Glossar:
- dateTime: Ein Datetime-Wert, der Zeitzonen-Offset-Informationen produktspezifisch) enthält
- dateTimeOnly: Ein Datetime-Wert ohne Zeitzoneninformationen (produktspezifisch)
- dateOnly: Ein Datumswert, der einen Jahr-Monat-Tag ohne Zeitkomponente darstellt (produktspezifisch)
- duration: Ein Zeitraum im ISO-8601-Format (z. B. PT10H) produktspezifisch)
- Epochenmillisekunden: Unix-Zeitstempel, ausgedrückt in Millisekunden seit 1970-01-01T00:00:00Z
Leitplanken:
- Das Zeitzonenargument in
toDateTimemuss eine Zeichenfolgenkonstante sein. Feldverweise und dynamische Ausdrücke sind nicht zulässig - Zeichenfolgeneingaben für
toDateTimeundtoDateTimeOnlymüssen dem ISO-8601-Format entsprechen; falsch formatierte Zeichenfolgen geben null ohne Fehler zurück toDateTimemit einer Epochenzahl erwartet Millisekunden. Multiplizieren Sie sekundenbasierte Zeitstempel mit 1000, bevor Sie den Test übergebentoBoolgibttruenur für die exakte"true"zurück; Zeichenfolgen wie"1","yes"oder"TRUE"gebenfalsezurück
Terminologie:
- Kanonischer Name: Konversionsfunktionen — Akronym: none — Varianten: Typengießfunktionen, Typenkonversionsfunktionen
- Synonyme: „toDateTime“ = „Konvertieren in datetime mit timezone“; „toDateTimeOnly“ = „Konvertieren in datetime ohne timezone“
- Verwechseln Sie nicht: „toDateTime“ (Zeitzonen-fähig) ≠ „toDateTimeOnly“ (keine Zeitzone)
- Verwechseln Sie nicht: „toDateOnly“ (nur Datum, keine Uhrzeit) ≠ „toDateTime“ (Datum und Uhrzeit mit Zeitzone)
FAQ:
- F: Wann sollte ich
toDateTimeversustoDateTimeOnlyverwenden? — Verwenden SietoDateTime, wenn Zeitzoneninformationen wichtig sind (z. B. Planung oder regionenübergreifende Vergleiche). Verwenden SietoDateTimeOnly, wenn nur die lokale Datums-/Uhrzeitangabe relevant ist und die Zeitzone ignoriert werden kann. - F: Warum gibt
toBool("TRUE")„false“ zurück? —toBoolerkennt nur die exakte"true"in Kleinbuchstaben. Alle anderen Zeichenfolgenwerte, einschließlich"TRUE"oder"yes", geben „false“ zurück. - F: Wie konvertiere ich einen Unix-Zeitstempel in Sekunden in eine dateTime? — Multiplizieren Sie den Sekundenwert mit 1000, um Millisekunden zu erhalten, und übergeben Sie ihn dann an
toDateTime, z. B.toDateTime(myField * 1000). - F: Kann die Zeitzone in
toDateTimeaus einem Profilattribut gelesen werden? — Nein, die Zeitzonen-ID muss eine Zeichenfolgenkonstante sein. Feldverweise und -ausdrücke werden nicht unterstützt. - F: Welches Format akzeptiert
toDurationals Zeichenfolge? — ISO-8601-Dauerformat, z. B."PT10H"für 10 Stunden oder"P1DT2H"für 1 Tag und 2 Stunden.