parseDate (text; format; [timezone])

parseDate()は1つ目の引数に日時の型に変換するためのテキスト、2つ目の引数に変換後の日時のフォーマットをとります。

フォーマットに使われるトークンは、「YY」や「MM」などで、「Tokens for date/time formatting」に一覧がありますが、あくまでdate型として返されるので、実質フォーマットを指定する意味は乏しいかと思います。

3つ目の引数にはタイムゾーンをとることもでき、デフォルトでは「UTC」となります。

addYears/Months/Dates/Hours/Minutes (date; number)

addYears/Months/Dates/Hours/Minutes()は1つ目の引数に日時、2つ目の引数に追加したい数値(年数や月数、日数、時間数、分数)を入れます。

数値をマイナスしたい場合は、2つ目の引数にマイナスの数を入れます。

以下の例では、date型の返り値を表現する際、ISO 8601に沿い、年月日を「2018-08-08」の形式で、間に「T」を挟み、時間を「15:55:57.536」の形式で、最後に協定世界時(UTC)を表す「Z」を入れ、表記しています。

// Sample
addYears(2016-08-08T15:55:57.536Z; 2)
> 2018-08-08T15:55:57.536Z

addYears(2016-08-08T15:55:57.536Z; -2)
> 2014-08-08T15:55:57.536Z

addMonths(2016-08-08T15:55:57.536Z; 2)
> 2016-10-08T15:55:57.536Z

addMonths(2016-08-08T15:55:57.536Z; -2)
> 2016-06-08T15:55:57.536Z

addDays(2016-12-08T15:55:57.536Z; 2)
> 2016-12-10T15:55:57.536Z

addDays(2016-12-08T15:55:57.536Z; -2)
> 2016-12-06T15:55:57.536Z

addHours(2016-12-08T15:55:57.536Z; 2)
> 2016-12-08T17:55:57.536Z

addHours(2016-12-08T15:55:57.536Z; -2)
> 2016-12-08T13:55:57.536Z

addMinutes(2016-12-08T15:55:57.536Z; 2)
> 2016-12-08T15:57:57.536Z

addMinutes(2016-12-08T15:55:57.536Z; -2)
> 2016-12-08T15:53:57.536Z

実例を見てみましょう。

日時を表すテキストで変数を定義[3]

4つの変数をテキストで定義しています。

変数「Now」は動的にシナリオを実行したタイミングの日時を代入しており、2から4番目の変数は、年月の間に「/」や「-」を入れたり、何も入れなかったりしています。

テキストをdate型に変換[4]

[3]で定義した4つの変数それぞれをparseDate()し、date型に変換し、3番目と4番目の変数は、タイムゾーンをデフォルトの「UTC」から「JP」に変換しています。

[4]の実行結果を見ると、それぞれが「2021年5月26日 22:52」と同じフォーマットに変換されていることが分かります。

時間を指定していない場合は「00:00」という扱いで、3番目と4番目の変数は、タイムゾーンが「JP」に変換されているため、0時が9時に、20時が翌朝5時に、いずれも9時間後の時間になっています。

このフォーマットはIntegromatが日本人に見やすいように自動的に変換しており、実際にはテキストではなく、date型として変数には代入されています。

右上部の「Download output bundles」を押すと、ISO 8601に沿うフォーマットで、UTCのタイムゾーンで表示されます。

date型を処理[5]

1つ目から4つ目までの変数は、[4]で定義された変数のdate型に対して、addYears/Months/Dates/Hours()をしています。

5つ目の変数は、「2020/10/20」というテキストをそのまま1つ目の引数としていますが、date型を入れていない場合でも、Integromatが自動的にparseDate()同様の処理を裏でしてくれるため、エラーにはなりません。

[5]の実行結果を見ると、上から順に、10年、10ヶ月、10日、10時間、10分が、それぞれ追加されていることが分かります。

以上、parseDate ()でテキストをdate型に変換し、addYears/Months/Dates/Hours/Minutes()で操作する方法についての説明でした。