日付および時間関数
変数
now
現在の時刻を YYYY-MM-DD-hhss 形式で取得します。
timestamp
現在の時刻を UNIX タイムスタンプとして取得します。
関数
addSeconds (date; number)
指定された秒数を日付に追加した結果として、新しい日付を返します。秒数を減算するには、負の数を入力します。
例:
-
addSeconds(2016-12-08T15:55:57.536Z;2)
2016-12-08T15:55:59.536Z を返します。
-
addSeconds(2016-12-08T15:55:57.536Z;-2)
2016-12-08T15:55:55.536Z を返します。
addMinutes (date; number) addminutes-date-number
指定された分数を日付に追加した結果として、新しい日付を返します。分数を減算するには、負の数を入力します。
例:
-
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 を返します。
addHours (date; number) addhours-date-number
指定した時間数を日付に追加した結果として、新しい日付を返します。時間数を減算するには、負の数を入力します。
例:
-
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 を返します。
addDays (date; number) adddays-date-number
指定した日数を日付に加算した結果を新しい日付として返します。日数を減算するには、負の数を入力します。
例:
-
addDays(2016-12-08T15:55:57.536Z;2)
戻り値:2016-12-10T15:55:57.536Z
-
addDays(2016-12-08T15:55:57.536Z;-2)
戻り値:2016-12-6T15:55:57.536Z
addMonths (date; number)
指定された月数を日付に追加した結果として、新しい日付を返します。月数を減算するには、負の数を入力します。
例:
-
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 を返します。
addYears (date; number)
指定された年数を日付に追加した結果として、新しい日付を返します。年数を減算するには、負の数を入力します。
例:
-
addYears(2016-08-08T15:55:57.536Z;2)
2018-08-08T15:55:57.536Z を返します。
-
addYears(2016-12-08T15:55:57.536Z; -2)
2014-08-08T15:55:57.536Z を返します。
setSecond (date; number)
この関数は、パラメーターで指定された秒数を持つ新しい日付を返します。
0 ~ 59 の数値を指定します。数値がその範囲外にある場合、この関数は、前の分(負の数の場合)または後続の分(正の数の場合)からの秒数を返します。
範囲外の数値を指定する必要がある場合は、前述の addSeconds (date; number)の節で説明されているように、 addSeconds を使用することをお勧めします。
例:
-
setSecond(2015-10-07T11:36:39.138Z;10)
2015-10-07T11:36:10.138Z を返します。
-
setSecond(2015-10-07T11:36:39.138Z; 6)
2015-10-07T11:37:01.138Z を返します。
setMinute (date; number)
この関数は、パラメーターで指定された分数を持つ新しい日付を返します。
0 ~ 59 の数値を指定します。数値がその範囲外にある場合、この関数は、前の時間(負の数の場合)または後続の時間(正の数の場合)の分数を返します。
範囲外の数値を指定する必要がある場合は、上記の addMinutes(date; number)の説明に従って、addMinutes を使用することをお勧めします。
例:
-
setMinute(2015-10-07T11:36:39.138Z;10)
2015-10-07T11:10:39.138Z を返します。
-
setMinute(2015-10-07T11:36:39.138Z;61)
2015-10-07T12:01:39.138Z を返します。
setHour (date; number)
この関数は、パラメーターで指定された時間数を持つ新しい日付を返します。
0 ~ 23 の数値を指定します。数値がこの範囲外にある場合、この関数は、前日(負の数の場合)または翌日(正の数の場合)の時間数を返します。
範囲外の数値を指定する必要がある場合は、上記の addHours(date; number)の説明に従って、addHours を使用することをお勧めします。
例:
-
setHour(2015-08-07T11:36:39.138Z;6)
戻り値:2015-08-07T06:36:39.138Z
-
setHour(2015-08-07T11:36:39.138;-6)
戻り値:2015-08-06T18:36:39.138Z
setDay (date; number/name of the day in English)
この関数は、パラメーターで指定された日の新しい日付を返します。
この関数を使用して曜日を設定できます。日曜日は 1、土曜日は 7 と指定します。1~7 の数値を指定した場合、結果の日付は現在の(日曜日から土曜日)週の範囲内になります。この数値がその範囲外の場合、前の週(負の数の場合)または次の週(正の数の場合)の日を返します。
範囲外の数値を指定する必要がある場合は、前述の addDays を使用することをお勧めします(addDays (date; number) を参照)。
例:
-
setDay(2018-06-27T11:36:39.138Z;Monday)
戻り値:2018-06-25T11:36:39.138Z
-
setDay(2018-06-27T11:36:39.138Z;1)
戻り値:2018-06-24T11:36:39.138Z
-
setDay(2018-06-27T11:36:39.138Z;7)
戻り値:2018-06-30T11:36:39.138Z
setDate (date; number)
この関数は、パラメーターで指定された月日の新しい日付を返します。
1~31 の数値を指定します。この範囲外の数値の場合、前の月(負の数の場合)または次の月(正の数の場合)の日を返します。
例:
-
setDate(2015-08-07T11:36:39.138Z;5)
戻り値:2015-08-05T11:36:39.138Z
-
setDate(2015-08-07T11:36:39.138Z;32)
戻り値:2015-09-01T11:36:39.138Z
setMonth (date; number/name of the month in English)
この関数は、パラメーターで指定された月の新しい日付を返します。
1~12 の数値を指定します。この範囲外の数値の場合、前の年(負の数の場合)または次の年(正の数の場合)の月を返します。
例:
-
setMonth(2015-08-07T11:36:39.138Z;5)
戻り値:2015-05-07T11:36:39.138Z
-
setMonth(2015-08-07T11:36:39.138Z;17)
戻り値:2016-05-07T11:36:39.138Z
-
setMonth(2015-08-07T11:36:39.138Z;january)
戻り値:2015-01-07T12:36:39.138Z
setYear (date; number)
パラメーターで指定された年の新しい日付を返します。
例:
-
setYear(2015-08-07T11:36:39.138Z;2017)
戻り値:2017-08-07T11:36:39.138Z
formatDate (date; format; [timezone])
この関数は、12-10-2021 20:30
などの日付値を Dec 10, 2021 8:30 PM
などのテキスト値として書式設定する場合に使用します。
これは、例えば同じシナリオで 1 つのアプリまたは web サービスの日付形式を、接続されているアプリまたは web サービスの日付形式に変更する必要がある場合に便利です。
詳細については、「 アイテム データの種類」の「日付とテキスト」を参照してください。
パラメーター
(オプション)変換で使用されるタイムゾーンを指定できます。
認識されるタイムゾーンのリストについては、Wikipedia の tz データベースのタイムゾーンのリストにある「TZ database name」列を参照してください。この列にリスト表示されている値のみが、関数により有効なタイムゾーンとして認識されます。その他の値は無視され、プロファイルで指定したシナリオタイムゾーンが代わりに使用されます。
このパラメーターを省略した場合、プロファイル設定で指定されたシナリオタイムゾーンが適用されます。
例:Europe/Prague
、 UTC
異なるタイプを指定した場合、型強制が適用されます。詳細については、「 型強制」を参照してください。
戻り値とタイプ
formatDate
関数は、指定された形式とタイムゾーンに従って、指定された日付値のテキスト表現を返します。データタイプはテキストです。
例: シナリオと web タイムゾーンは、これらの例ではどちらも Europe/Prague
に設定されています。
-
formatDate(1. Date created;MM/DD/YYYY)
戻り値:10/01/2018
-
formatDate(1. Date created; YYYY-MM-DD hh:mm A)
戻り値:2018-10-01 09:32 AM
-
formatDate(1. Date created;DD.MM.YYYY HH:mm;UTC)
戻り値:01.10.2018 07:32
-
formatDate(now;DD.MM.YYYY HH:mm)
戻り値:19.03.2019 15:30
parseDate (text; format; [timezone])
日付を表すテキスト値(12-10-2019 20:30
または Aug 18, 2019 10:00 AM
)の場合、この関数を使用して、日付値(バイナリマシンが読み取り可能な表現)に変換(解析)する必要があります。詳細については、「 アイテム データの種類」の「日付とテキスト」を参照してください。
パラメーター
2 番目の列は、期待されるタイプを示します。異なるタイプを指定した場合、型強制が適用されます。詳細については、「 型強制」を参照してください。
(オプション)変換で使用されるタイムゾーンを指定できます。
認識されるタイムゾーンのリストについては、Wikipedia の tz データベースのタイムゾーンのリストにある「TZ database name」列を参照してください。この列にリスト表示されている値のみが、関数により有効なタイムゾーンとして認識されます。その他の値は無視され、プロファイルで指定したシナリオタイムゾーンが代わりに使用されます。
このパラメーターを省略した場合、プロファイル設定で指定されたシナリオタイムゾーンが適用されます。
例:Europe/Prague
、 UTC
異なるタイプを指定した場合、型強制が適用されます。詳細については、「 型強制」を参照してください。
戻り値とタイプ
この関数は、指定した形式とタイムゾーンに従って、テキスト文字列を日付に変換します。値のデータタイプは日付です。
例: 次の例では、返される日付値は ISO 8601 に従って表されますが、結果のデータタイプは日付です。
-
parseDate(2016-12-28;YYYY-MM-DD)
戻り値:2016-12-28T00:00:00.000Z
-
parseDate(2016-12-28 16:03;YYYY-MM-DD HH:mm)
戻り値:2016-12-28T16:03:00.000Z
-
parseDate(2016-12-28 04:03 pm; YYYY-MM-DD hh:mm a)
戻り値:2016-12-28T16:03:06.000Z
-
parseDate(1482940986;X)
戻り値:2016-12-28T16:03:06.000Z
dateDifference (Date1; Date2; Unit)
2 つの日付の差を表す数値を、指定された単位で返します。
Date1 から Date2 が減算されます。
unit
パラメーターには、次のいずれかの時刻値を使用します。
- milliseconds
- 秒
- 分
- 時間
- days
- 週
- 月
単位が指定されていない場合、この関数は差をミリ秒単位で返します。
例:
-
dateDifference(2021-05-11T18:10:00.000Z;2021-05-11T18:00:00.000Z)
戻り値:
600,000
-
dateDifference(2021-05-11T18:10:00.000Z;2021-05-11T18:00:00.000Z;hours)
4
を返します -
dateDifference2021-06-11T18:10:00.000Z;2021-05-11T18:00:00.000Z;months)
戻り値:
1
その他の例
月の n 番目の曜日の計算方法
Exceljet の web ページから Workfront Fusion 向けに調整されたこの節では、月の n 番目の曜日を取得する方法を説明します。
月の n 番目の曜日(例:最初の火曜日、3 番目の金曜日など)に対応する日付を計算する必要がある場合、次の数式を使用できます。
{{addDays(setDate(1.date; 1); 1.n * 7 - formatDate(addDays(setDate(1.date; 1); "-" + 1.dow); "E"))}}
数式には、次の項目が含まれます。
例えば、第 2 水曜日ごとに 1 つの特定のケースのみを計算する場合は、1.n
および 2.dow
の項目を計算式内で対応する数値に置き換えることができます。現在の月の第 2 水曜日には、次の値を使用します。
1.n
=2
1.dow
=3
1.date
=now
説明:
setDate(now;1)
は、現在の月の最初の曜日を返しますformatDate(....;E)
は、曜日を返します(1、2、…6)
日付間の日数の計算方法
例えば、次の式を使用できます。
{{round((2.value - 1.value) / 1000 / 60 / 60 / 24)}}
-
D1
およびD2
の値は、日付タイプの値です。文字列タイプの値(例:20.10.2018)の場合、parseDate()
関数を使用して、日付タイプの値に変換します。 -
round()
関数は、いずれかの日付がサマータイム期間内に該当し、その他の日付がサマータイム期間外の場合に使用されます。この場合、時間の差は 1 時間少ないか多いかです。整数以外の結果を得るには、24 で割ります。サマータイムで 1 時間失います。百分率が発生しないように、数値を丸めて平均化します。
月の最終日/ミリ秒の計算方法
日付範囲を指定する場合、例えば、検索モジュールで、範囲が前月の全体にわたりクローズした間隔(両方の制限ポイントを含む間隔)の場合、月の最終日を計算する必要があります。
2019-09-01 ≤ D ≤ 2019-09-30
次の数式は、前月の最終日の計算方法の 1 つを示しています。
{{addDays(setDate(now; 1); -1)}}
場合によっては、月の最後日だけでなく、文字どおり最後のミリ秒も計算する必要があります。
2019-09-01T00:00:00.000Z ≤ D ≤ 2019-09-30T23:59:59.999Z
この数式は、前月の直近ミリ秒を計算する方法の 1 つを示します。
{{parseDate(parseDate(formatDate(now; "YYYYMM01"); "YYYYMMDD"; "UTC") - 1; "x")}}
タイムゾーン設定を使用するのに結果が必要な場合は、UTC 引数を省略します。
{{parseDate(parseDate(formatDate(now; "YYYYMM01"); "YYYYMMDD") - 1; "x")}}
ただし、次のように、翌月の最初の日を指定し、「次よりも小さいか等しい」演算子を「次よりも小さい」に置き換えて、代わりに半開間隔(その制限ポイントを除く間隔)を使用することをお勧めします。
2019-09-01 ≤ D < 2019-10-01
2019-09-01T00:00:00.000Z ≤ D < 2019-10-01T00:00:00.000Z