日付関数 date-functions
日付関数を使用すると、ジャーニー式内で日時の値を操作して作業できます。 これらの関数は、カスタマージャーニーでの時間ベースの条件、スケジュール、時間計算に不可欠です。
日付関数は、次の操作が必要な場合に使用します。
- 特定のタイムゾーン処理(now、nowWithDelta、currentTimeInMillis)を使用して現在の時刻または日付を取得
- 日付が特定の時間範囲(inLastDays、inLastHours、inLastMonths、inLastYears、inNextDays、inNextHours、inNextMonths、inNextYears)に該当するかどうかを確認
- 日時コンポーネント(setHours、setDays、updateTimeZone)を変更
- 時間ベースの計算と比較を実行
- 異なる時間形式と表示域間を変換
日付関数は、時間ロジックを正確に制御し、特定の期間とスケジュールに応答する、時間依存のジャーニーパスと条件を作成できます。
now() などの一部の関数は、メールコンテンツのパーソナライゼーションエディターでは使用できません。 詳細情報currentTimeInMillis currentTimeInMillis
現在の時刻をエポックミリ秒単位で返します。
currentTimeInMillis()currentTimeInMillis()
整数を返します。
currentTimeInMillis()
「1544712617131」を返します。
inLastDays inLastDays
指定された dateTime が現在の日時とその delta 日前の間にある場合、true を返します。
inLastDays(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| パラメーター | タイプ |
| 日時 | 日時 |
| delta | 整数 |
inLastDays(<dateTime>,<integer>)
ブール値を返します。
inLastDays(toDateTime('2023-12-12T01:11:00Z'), 4)
true を返します。
inLastHours inLastHours
指定された日時が現在の日時とその delta 時間前の間にある場合、true を返します。
inLastHours(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| パラメーター | タイプ |
| 日時 | 日時 |
| delta | 整数 |
inLastHours(<dateTime>,<integer>)
ブール値を返します。
inLastHours(toDateTime('2023-12-12T01:11:00Z'), 4)
true を返します。
inLastHours(@event{MyEvent.timestamp}, 4)
true を返します。
inLastMonths inLastMonths
指定された日付または日時が現在の日時とその delta か月前の間にある場合、true を返します。
inLastMonths(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| パラメーター | タイプ |
| 日時 | 日時 |
| delta | 整数 |
inLastMonths(<dateTime>,<integer>)
ブール値を返します。
inLastMonths(toDateTime('2023-12-12T01:11:00Z'), 4)
true を返します。
inLastYears inLastYears
指定された日付または日時が現在の日時とその delta 年前の間にある場合、true を返します。
inLastYears(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| パラメーター | タイプ |
| 日時 | 日時 |
| delta | 整数 |
inLastYears(<dateTime>,<integer>)
ブール値を返します。
inLastYears(toDateTime('2023-12-12T01:11:00Z'), 4)
true を返します。
inNextDays inNextDays
指定された日付または日時が現在の日時とその delta 日後の間にある場合、true を返します。
inNextDays(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| パラメーター | タイプ |
| 日時 | 日時 |
| delta | 整数 |
inNextDays(<dateTime>,<integer>)
ブール値を返します。
inNextDays(toDateTime('2023-12-12T01:11:00Z'), 4)
true を返します。
inNextHours inNextHours
指定された日付または日時が現在と現在 + デルタ時間の間にある場合、true を返します。
inNextHours(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| パラメーター | タイプ |
| 日時 | 日時 |
| delta | 整数 |
inNextHours(<dateTime>,<integer>)
ブール値を返します。
inNextHours(toDateTime('2023-12-12T01:11:00Z'), 4)
true を返します。
inNextMonths inNextMonths
指定された日付または日時が現在の日時とその delta か月後の間にある場合、true を返します。
inNextMonths(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| パラメーター | タイプ |
| 日時 | 日時 |
| delta | 整数 |
inNextMonths(<dateTime>,<integer>)
ブール値を返します。
inNextMonths(toDateTime('2023-01-12T01:11:00Z'), 4)
true を返します。
inNextYears inNextYears
指定された日付または日時が現在の日時とその delta 年後の間にある場合、true を返します。
inNextYears(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| パラメーター | タイプ |
| 日時 | 日時 |
| delta | 整数 |
inNextYears(<dateTime>,<integer>)
ブール値を返します。
inNextYears(toDateTime('2021-12-12T01:11:00Z'), 4)
true を返します。
now now
現在の日付を日時形式で返します。 データタイプについて詳しくは、このページを参照してください。
getCurrentZonedDateTime() を使用します。 詳細情報now(<parameter>)| table 0-row-2 1-row-2 | |
|---|---|
| パラメーター | 説明 |
| 文字列 | タイムゾーン識別子(オプション) |
now()
now("<timeZone id>")
日時を返します。
now()
2023-06-03T06:30Z を返します。
toString(now())
“2023-06-03T06:30Z” を返します。
now("Europe/Paris")
2023-06-03T08:30+02:00 を返します。
nowWithDelta nowWithDelta
オフセットを含んだ現在の日時を返します。 タイムゾーン ID を指定した場合は、タイムゾーンオフセットが適用されます。 データタイプについて詳しくは、このページを参照してください。
nowWithDelta(<parameters>)| table 0-row-2 1-row-2 2-row-2 3-row-2 | |
|---|---|
| パラメーター | 説明 |
| delta | 正または負の整数値 |
| 日時の構成要素 | 「years」、「months」、「days」、「hours」、「minutes」、「seconds」のいずれかを文字列として指定します |
| タイムゾーン ID | タイムゾーン値の文字列表現。 詳しくは、データタイプを参照してください。 タイムゾーン ID は文字列定数である必要があります。 フィールド参照や式は使用できません。 |
nowWithDelta(<delta>,<date part>
nowWithDelta(<delta>,<date part>,"<timeZone id>")
日時を返します。
nowWithDelta(-2, "hours")
nowWithDelta(-2, "hours", "Europe/Paris")
正確に 2 時間前の日時を返します。
nowWithDelta(1, "months", "Asia/Tokyo")
2026-01-31で評価すると、2026-02-28T…を返し、2026-05-31で評価すると、2026-06-30T…
nowWithDelta()は暦月の算術を使用します。 目標月の日数が現在の曜日より少ない場合、その月の最後の有効な日に正規化されます。 関数は翌月にロールオーバーされません。
setHours setHours
日時または日時のみの時を設定します。 例えば、明日の特定の正時まで待つ場合に、その正時を強制的に指定できます。
setHours(<parameter>)| table 0-row-2 1-row-2 2-row-2 3-row-2 | |
|---|---|
| パラメーター | タイプ |
| 日時 | 日時 |
| タイムゾーンを考慮しない日時 | dateTimeOnly |
| 時 | 整数 |
setHours(<dateTime>,<hours>)
日時を返します。
setHours(<dateTimeOnly>,<hours>)
タイムゾーンを無視して日時を返します。
setHours(toDateTime('2023-12-12T01:11:00Z'), 4)
2023-12-12T04:11:00Z を返します。
setHours(nowWithDelta(1, "days"), 20)
明日の午後 8:XY を返します(XY は現在時刻の分)。 評価が午前 2:45 に行われた場合、返される時刻は午後 8:45 になります。
setDays setDays
日時または日時のみの日を設定します。 例えば、その月の特定の日まで待つ場合に、その日を強制的に指定できます。
setDays(<parameter>)| table 0-row-2 1-row-2 2-row-2 3-row-2 | |
|---|---|
| パラメーター | タイプ |
| 日時 | 日時 |
| タイムゾーンを考慮しない日時 | dateTimeOnly |
| 日 | 整数 |
setDays(<dateTime>,<days>)
日時を返します。
setDays(<dateTimeOnly>,<days>)
タイムゾーンを無視して日時を返します。
setDays(toDateTime('2023-12-12T01:11:00Z'), 25)
2023-12-25T01:11:00Z を返します。
setDays(toDateTimeOnly(@event{MyEvent.registrationDate}), 1)
updateTimeZone updateTimeZone
新しいタイムゾーンで、同じ瞬間の新しい日時を返します。
updateTimeZone(<parameters>)- タイムゾーン ID:文字列
- 日時
updateTimeZone(<dateTime>,<timeZone id>)
日時を返します。
updateTimeZone( toDateTime("2023-08-28T08:15:30.123-07:00"), "Europe/Paris"))
2023-08-28T17:15:30.123+02:00 を返します。
updateTimeZone(@event{MyExpEvent.timestamp}, "Australia/Sydney")
「timestamp」フィールドの値が 2021-11-16T16:55:12.939318+01:00 の場合、この関数は 2021-11-17T02:55:12.942115+11:00 を返します。
このセクションには、このトピックに関連する解釈、検索、質問への回答をサポートすることを目的とした構造化された知識が含まれています。
理解を深めるには、この情報をこのページのドキュメントと組み合わせる必要があります。 どちらのソースも単独で使用することを意図していません。このページでは、機能について説明しますが、この節では、用語、意図、適用可能性、および制約の曖昧さを解消するのに役立つ追加のコンテキストを提供します。
- TL;DR:このページでは、AJO ジャーニー式で使用できるすべての日付関数と時刻関数について説明します。現在の時刻を取得する方法、日付が相対時間枠内にあるかどうかを確認する方法、日付/時刻コンポーネントを変更する方法について説明します。
インテント:
nowまたはnowWithDeltaを使用して、現在の日時(オプションのタイムゾーン付き)を取得しますcurrentTimeInMillisを使用して、現在の時間をエポック整数として取得しますinLastDays、inLastHours、inLastMonths、inLastYearsを使用して、過去N日間、時間、月、または年内に日時が含まれているかどうかを確認しますinNextDays、inNextHours、inNextMonths、inNextYearsを使用して、日付が次のN日、時間、月、または年内に含まれるかどうかを確認しますsetHoursまたはsetDaysを使用して、特定の時間または日を日付値に強制的に設定しますupdateTimeZoneを使用して同じインスタントを保持しながら、日時を別のタイムゾーンに変換します
用語集:
- dateTime: タイムゾーンオフセット情報 (製品固有) を含む日時の値
- dateTimeOnly: タイムゾーン情報のない日時の値(製品固有)
- エポックミリ秒: 1970-01-01T00:00:00Zから経過したミリ秒数を表す整数
- delta:現在の時間を年、月、日、時間、分、秒の数だけシフトするために
nowWithDeltaで使用される整数オフセット(正または負)
ガードレール:
now()はジャーニー式でのみ使用できます。メールのパーソナライゼーションには、代わりにgetCurrentZonedDateTime()を使用してくださいnowWithDeltaのタイムゾーン IDは文字列定数である必要があります。フィールド参照と動的式はサポートされていませんupdateTimeZoneのタイムゾーン IDは文字列定数である必要があります
用語:
- 正規名:日付関数 – 頭字語:なし – バリアント:日時関数、時間関数
- 同義語:“now ()” = “current datetime”; “currentTimeInMillis ()” = “current epoch milliseconds”
- 混同しないでください:“inLastDays” (時間を振り返る) ≠ “inNextDays” (時間を進める)
- 混同しないでください。「setHours」(時間コンポーネントに代わる)≠「nowWithDelta」(現在の時間をオフセットする)
- 「updateTimeZone」(同じインスタント、異なるタイムゾーン表現)≠「setHours」(時間値自体を変更)は混同しないでください
FAQ:
- Q: メールのパーソナライゼーションコンテンツで
now()を使用できますか? —now()はジャーニー式でのみ使用できます。 電子メールのパーソナライゼーションにgetCurrentZonedDateTime()を使用します。 - Q:過去24時間にイベントが発生したかどうかを確認するにはどうすればよいですか? —
inLastHours(@event{MyEvent.timestamp}, 24)を使用します。 - Q:過去に2時間オフセットした現在の時間を取得するにはどうすればよいですか? —
nowWithDelta(-2, "hours")を使用します。 - Q:
updateTimeZoneとsetHoursの違いは何ですか? —updateTimeZoneは同じ時刻を保持しますが、別のタイムゾーンで表現します。一方、setHoursは実際に日時の値の時間コンポーネントを変更します。 - Q:
nowWithDeltaのタイムゾーンパラメーターをプロファイルフィールドにすることはできますか? – いいえ、タイムゾーン IDは文字列定数である必要があります。フィールド参照はサポートされていません。 - Q:
nowWithDelta()が月と共に使用され、現在の日付が月末日である場合はどうなりますか? – 関数はカレンダー月算術を使用し、結果を目標月の最後の有効な日に正規化します。 例えば、1月31日に1か月を追加すると、3月3日ではなく2月28日が返されます。