日付の formula

日付や日時の formula を使用すると、日付や時刻のデータピルを処理できます。これらの formula は、ホワイトリストで許可された Ruby メソッドです。したがって、すべての Ruby メソッドがサポートされているわけではありません。その他の formula をホワイトリストに追加したい場合は、弊社までご連絡ください

日付の演算

日付や日時のデータで演算を行うには、以下のキーワードを使用します。

  • seconds
  • minutes
  • days
  • months
  • years

formula と組み合わせると、足し算や引き算を実行できます。

使用例

日付の演算出力
"2020-01-01".to_date + 2.days"2020-01-03"
"2020-01-01".to_date - 2.days"2019-12-30"
"2020-01-01".to_date + 2.months"2020-03-01"
"2020-01-01".to_date - 2.months"2019-11-01"
"2020-01-01".to_date + 2.years"2022-01-01"
"2020-01-01".to_date - 2.years"2018-01-01"

now

米国太平洋時間 (PST) で実行時の時刻と日付を返します。

使用例

formula結果
now"2022-02-01T07:00:00.000000-08:00"
now + 8.hours"2022-02-01T15:00:00.000000-08:00"
now + 2.days"2022-02-03T07:00:00.000000-08:00"

動作

この formula はジョブの処理中にタイムスタンプを計算します。この formula を使用する各ステップが、そのステップの実行時のタイムスタンプを返します。

出力データピル

日付だけが必要で時刻が不要な場合は、代わりに today formula をお試しください。

関連情報

  • today: 実行時の日付を返します。
  • in_time_zone: 時刻の値を別のタイムゾーンに変換します。

today

米国太平洋時間で実行時の日付を返します。

使用例

formula結果
today"2022-02-01"
today + 8.hours"2022-02-01T15:00:00.000000-08:00"
today + 2.days"2022-02-03"

動作

この formula はジョブの処理中にタイムスタンプを計算します。この formula を使用する各ステップが、そのステップの実行時の日付を返します。

出力データピル

日付と時刻が必要な場合は、代わりに now formula をお試しください。

関連情報

  • now: 実行時の時刻と日付を返します。
  • in_time_zone: 時刻の値を別のタイムゾーンに変換します。

from_now

指定された期間だけ後のタイムスタンプを返します。タイムスタンプは実行時に計算されます。

構文

Unit.from_now

  • Unit - オフセットする時刻値。

使用例

formula結果
30.seconds.from_now"2022-02-01T07:00:30.000000-08:00"
2.months.from_now"2022-04-01T07:00:00.000000-08:00"
3.days.from_now"2022-02-04T07:00:00.000000-08:00"

動作

この formula は現在のタイムスタンプを計算し、指定された期間だけオフセットします。このタイムスタンプは、ジョブの処理中に計算されます。この formula を使用するステップそれぞれが、各実行ステップのタイムスタンプを返します。

単位

次のうち、どの単位でも使用できます: secondsminuteshoursdaysmonthsyears

関連情報

  • ago: 指定された期間だけ前のタイムスタンプを返します。
  • now: 実行時の時刻と日付を返します。
  • today: 実行時の日付を返します。

ago

指定された期間だけ前のタイムスタンプを返します。タイムスタンプは実行時に計算されます。

構文

Unit.ago

  • Unit - オフセットする時刻値。

使用例

formula結果
2.months.ago"2020-10-04 14:45:29 -0700"
3.days.ago"2020-12-01 14:45:29 -0700"
30.seconds.ago"2020-12-04 14:15:29 -0700"

動作

この formula は現在のタイムスタンプを計算し、指定された期間だけオフセットします。このタイムスタンプは、ジョブの処理中に計算されます。この formula を使用するステップそれぞれが、各実行ステップのタイムスタンプを返します。

単位

次のうち、どの単位でも使用できます: secondsminuteshoursdaysmonthsyears

関連情報

  • from_now: 指定された期間だけ後のタイムスタンプを返します。
  • now: 実行時の時刻と日付を返します。
  • today: 実行時の日付を返します。

wday

曜日を返します。日曜日の場合は0を、月曜日の場合は1を返します。

構文

Date.wday

  • Date - 日付または日時のデータ型。

使用例

結果
today.wday4
"01/12/2020".to_date(format:"DD/MM/YYYY").wday2

動作

この formula はジョブの処理中に現在の日付を計算します。曜日は整数の出力データに変換されます。日曜日は0、月曜日は1になります。

簡単なヒント: 日付データ型への変換

この formula が機能するのは、データ型が日付または日時の場合のみです。文字列を日付のデータ型に変換するには、to_date を使用してください。

関連情報

  • yday: 年内通算日数を返します。
  • yweek: 年内通算週数を返します。

yday

年内通算日数を返します。

構文

Date.yday

  • Date - 日付または日時のデータ型。

使用例

結果
today.yday338
"2020-01-01".to_date(format:"YYYY-MM-DD").yday1
"2020-02-01".to_date(format:"YYYY-MM-DD").yday32

動作

この formula はジョブの処理中に現在の日付を計算します。年内通算日数は整数の出力データに変換されます。

簡単なヒント: 日付データ型への変換

この formula が機能するのは、データ型が日付または日時の場合のみです。文字列を日付のデータ型に変換するには、to_date を使用してください。

関連情報

  • wday: 週内通算日数を返します。
  • yweek: 年内通算週数を返します。

yweek

年内通算週数を返します。

構文

Date.yweek

  • Date - 日付または日時のデータ型。

使用例

結果
today.yweek49
"2020-01-01".to_date(format:"YYYY-MM-DD").yweek1
"2020-02-01".to_date(format:"YYYY-MM-DD").yweek5

動作

この formula はジョブの処理中に現在の日付を計算します。年内通算週数は整数の出力データに変換されます。

簡単なヒント: 日付データ型への変換

この formula が機能するのは、データ型が日付または日時の場合のみです。文字列を日付のデータ型に変換するには、to_date を使用してください。

関連情報

  • wday: 週内通算日数を返します。
  • yday: 年内通算日数を返します。

beginning_of_hour

与えられた日時の正時の日時を返します。

構文

Datetime.beginning_of_hour

  • Datetime - 入力日時。

使用例

formula結果
today.to_time.beginning_of_hour"2020-12-02T16:00:00.000000-07:00"
"2020-06-01T01:30:45.000000+00:00".beginning_of_hour"2020-06-01T01:00:00.000000+00:00"
"2020-06-01".to_time.beginning_of_hour"2020-06-01T00:00:00.000000+00:00"

beginning_of_day

与えられた日付/日時の、午前0時の日時を返します。

構文

Date.beginning_of_day

  • Date - 入力日付または入力日時。

使用例

formula結果
today.beginning_of_day"2020-12-02T00:00:00.000000-07:00"
"2020-06-01".to_date.beginning_of_day"2020-06-01T00:00:00.000000+00:00"
"2020-06-01T01:30:45.000000+00:00".beginning_of_day"2020-06-01T00:00:00.000000+00:00"

beginning_of_week

与えられた日付/日時の、前の月曜日の日付を返します。

構文

Date.beginning_of_week

  • Date - 入力日付または入力日時。

使用例

formula結果
today.beginning_of_week"2020-11-30T00:00:00.000000+00:00"
"2020-06-01".to_date.beginning_of_week"2020-06-01T00:00:00.000000+00:00"
"2020-06-01T01:30:45.000000+00:00".beginning_of_week"2020-06-01T00:00:00.000000+00:00"

beginning_of_month

与えられた日付/日時の、月の初日を返します。

構文

Date.beginning_of_month

  • Date - 入力日付または入力日時。

使用例

formula結果
today.beginning_of_month"2020-12-01T00:00:00.000000+00:00"
"2020-06-01".to_date.beginning_of_month"2020-06-01T00:00:00.000000+00:00"
"2020-06-01T01:30:45.000000+00:00".beginning_of_month"2020-06-01T00:00:00.000000+00:00"

beginning_of_year

与えられた日付/日時の、年の初日を返します。

構文

Date.beginning_of_year

  • Date - 入力日付または入力日時。

使用例

formula結果
today.beginning_of_year"2020-01-01T00:00:00.000000+00:00"
"2020-06-01".to_date.beginning_of_year"2020-01-01T00:00:00.000000+00:00"
"2020-06-01T01:30:45.000000+00:00".beginning_of_year"2020-01-01T00:00:00.000000+00:00"

end_of_month

与えられた日付/日時の、月の最終日を返します。この formula は入力データに基づいて日付または日時を返します。

構文

Date.end_of_month

  • Date - 入力日付または入力日時。

使用例

formula結果
today.end_of_month"2020-12-31"
"2020-06-01".to_date.end_of_month"2020-06-30"
"2020-06-01T01:30:45.000000+00:00".to_time.end_of_month"2020-06-30T23:59:59.999999+00:00"

strftime

日時の入力データを、ユーザー定義の文字列として返します。

構文

Date.strftime(format)

  • Date - 入力日付または入力日時。
  • format - 文字列として記述された、ユーザー定義の日時の書式。

使用例

formula結果
"2020-06-05T17:13:27.000000-07:00".strftime("%Y/%m/%d")"2020/06/05"
"2020-06-05T17:13:27.000000-07:00".strftime("%Y-%m-%dT%H:%M:%S%z")"2020-06-05T17:13:27-0700"
"2020-06-05T17:13:27.000000-07:00".strftime("%B %e, %l:%M%p")"June 5, 5:13 pm"
"2020-06-05T17:13:27.000000-07:00".strftime("%A, %d %B %Y %k:%M")"Friday, 05 June 2020 0:00"

パラメータ

上記で示されているように、各コード (%B、%e、%I など) は日時の特定の要素を表します。カンマ (,)、スラッシュ (/)、コロン (😃 といった静的なテキストや句読点を挿入することもできます。以下に示すのは、Workato でよく使われるコードの一覧です。

コード意味
(2020-06-05T17:13:27.000000-07:00)
%Y世紀を含む年2020
%m0を埋めて2桁にした月06
%B完全な月名June
%b短縮形の月名Jun
%d0を埋めて2桁にした日05
%e0を埋めて2桁にしない日5
%H1日の時間 (24時間制)17
%k0を埋めて2桁にしない1日の時間 (24時間制)17
%I (大文字の i)1日の時間 (12時間制)05
%l (小文字の L)0を埋めて2桁にしない1日の時間 (12時間制)5
%pAM または PMPM
%M時刻以下の分部分13
%S分以下の秒部分27
%L分以下のミリ秒部分000
%zUTC からのタイムゾーンのオフセット-0700
%😒UTC からのタイムゾーンのオフセット (書式設定あり)-07:00
%Zタイムゾーンの省略名UTC
%A完全な曜日名Friday

完全なリストについては、Ruby のドキュメントを参照してください。

動作

ユーザーが日時の書式を定義できるようにします。日時の入力データを、指定された書式で返します。

入力のデータ型

入力のデータ型は日付または日時でなければなりません。to_date formula を使用すると、文字列を日付のデータ型に変換できます。

関連情報

  • to_date: 日付を日付のデータ型で返します。

in_time_zone

IANA のタイムゾーンデータベースに含まれるタイムゾーン名を使用して、日付または日時を異なるタイムゾーンに変換できます。この formula は日時を返します。

構文

Date.in_time_zone(timezone)

  • Date - 入力日付または入力日時。
  • timezone - (任意) 目的のタイムゾーン。指定されていない場合、この formula は Workato アカウントで定義されたタイムゾーンを返します。

使用例

formula結果
today.in_time_zone("America/New_York")"2020-12-01T00:00:00.000000-05:00"
today.to_time.in_time_zone("America/New_York")"2020-11-30T19:00:00.000000-05:00"
"2020-06-01".to_time.in_time_zone"2020-05-31T17:00:00.000000-07:00"
"2020-06-01T01:30:45.000000+00:00".in_time_zone"2020-05-31T18:30:45.000000-07:00"

dst?

入力日時が夏時間の範囲内にある場合、true を返します。

構文

Datetime.dst?

  • Datetime - 入力日付または入力日時。

使用例

formula結果
today.dst?false
today.in_time_zone("America/New_York").dst?true
"2020-06-01".in_time_zone("America/New_York").dst?true
"2020-09-06T18:30:15.671720-05:00".dst?true

リージョンの参考情報

この formula で使用するタイムゾーン名については、以下の表を参照してください。

リージョンformula で使用するタイムゾーンUTC ゾーンDST オフセットの有無
日付変更線西側Pacific/MidwayUTC-11
ミッドウェー島Pacific/MidwayUTC-11
アメリカ領サモアPacific/Pago_PagoUTC-11
ハワイPacific/HonoluluUTC-10
アラスカAmerica/JuneauUTC-9
太平洋時間 (米国 & カナダ)America/Los_AngelesUTC-8
ティフアナAmerica/TijuanaUTC-8
山岳部時間 (米国 & カナダ)America/DenverUTC-7
アリゾナAmerica/PhoenixUTC-7
チワワAmerica/ChihuahuaUTC-7
マサトランAmerica/MazatlanUTC-7
中部時間 (米国 & カナダ)America/ChicagoUTC-6
サスカチュワンAmerica/ReginaUTC-6
グアダラハラAmerica/Mexico_CityUTC-6
メキシコシティーAmerica/Mexico_CityUTC-6
モンテレイAmerica/MonterreyUTC-6
中央アメリカAmerica/GuatemalaUTC-6
東部時間 (米国 & カナダ)America/New_YorkUTC-5
インディアナ (東部)America/Indiana/IndianapolisUTC-5
ボゴタAmerica/BogotaUTC-5
リマAmerica/LimaUTC-5
キトAmerica/LimaUTC-5
大西洋標準時 (カナダ)America/HalifaxUTC-4
カラカスAmerica/CaracasUTC-4
ラパスAmerica/La_PazUTC-4
サンティアゴAmerica/SantiagoUTC-4
ジョージタウンAmerica/GuyanaUTC-4
ニューファンドランドAmerica/St_JohnsUTC-3:30
ブラジリアAmerica/Sao_PauloUTC-3
ブエノスアイレスAmerica/Argentina/Buenos_AiresUTC-3
モンテビデオAmerica/MontevideoUTC-3
グリーンランドAmerica/GodthabUTC-3
中部大西洋Atlantic/South_GeorgiaUTC-2
アゾレス諸島Atlantic/AzoresUTC-1
カーボベルデ諸島Atlantic/Cape_VerdeUTC-1
ダブリンEurope/DublinUTC-1
リスボンEurope/LisbonUTC+0
エディンバラEurope/LondonUTC+0
ロンドンEurope/LondonUTC+0
モンロビアAfrica/MonroviaUTC+0
UTCEtc/UTCUTC+0
カサブランカAfrica/CasablancaUTC+1
ベオグラードEurope/BelgradeUTC+1
ブラチスラバEurope/BratislavaUTC+1
ブダペストEurope/BudapestUTC+1
リュブリャナEurope/LjubljanaUTC+1
プラハEurope/PragueUTC+1
サラエボEurope/SarajevoUTC+1
スコピエEurope/SkopjeUTC+1
ワルシャワEurope/WarsawUTC+1
ザグレブEurope/ZagrebUTC+1
ブリュッセルEurope/BrusselsUTC+1
コペンハーゲンEurope/CopenhagenUTC+1
マドリードEurope/MadridUTC+1
パリEurope/ParisUTC+1
アムステルダムEurope/AmsterdamUTC+1
ベルリンEurope/BerlinUTC+1
ベルンEurope/ZurichUTC+1
チューリッヒEurope/ZurichUTC+1
ローマEurope/RomeUTC+1
ストックホルムEurope/StockholmUTC+1
ウイーンEurope/ViennaUTC+1
西・中央アフリカAfrica/AlgiersUTC+1
ブカレストEurope/BucharestUTC+2
カイロAfrica/CairoUTC+2
ヘルシンキEurope/HelsinkiUTC+2
キーウEurope/KievUTC+2
リガEurope/RigaUTC+2
ソフィアEurope/SofiaUTC+2
タリンEurope/TallinnUTC+2
ヴィルニアスEurope/VilniusUTC+2
アテネEurope/AthensUTC+2
エルサレムAsia/JerusalemUTC+2
ハラーレAfrica/HarareUTC+2
プレトリアAfrica/JohannesburgUTC+2
カリーニングラードEurope/KaliningradUTC+2
イスタンブールEurope/IstanbulUTC+3
ミンスクEurope/MinskUTC+3
モスクワEurope/MoscowUTC+3
サンクト・ペテルブルクEurope/MoscowUTC+3
クウェートAsia/KuwaitUTC+3
リヤドAsia/RiyadhUTC+3
ナイロビAfrica/NairobiUTC+3
バグダッドAsia/BaghdadUTC+3
テヘランAsia/TehranUTC+3:30
ボルゴグラードEurope/VolgogradUTC+4
サマラEurope/SamaraUTC+4
アブダビAsia/MuscatUTC+4
マスカットAsia/MuscatUTC+4
バクーAsia/BakuUTC+4
トビリシAsia/TbilisiUTC+4
エレバンAsia/YerevanUTC+4
カブールAsia/KabulUTC+4:30
エカチェリンブルグAsia/YekaterinburgUTC+5
イスラマバードAsia/KarachiUTC+5
カラチAsia/KarachiUTC+5
タシケントAsia/TashkentUTC+5
スリジャヤワルダナプラAsia/ColomboUTC+5:30
チェンナイAsia/KolkataUTC+5:30
コルカタAsia/KolkataUTC+5:30
ムンバイAsia/KolkataUTC+5:30
ニュー・デリーAsia/KolkataUTC+5:30
カトマンズAsia/KathmanduUTC+5:45
アスタナAsia/DhakaUTC+6
ダッカAsia/DhakaUTC+6
アルマトイAsia/AlmatyUTC+6
ウルムチAsia/UrumqiUTC+6
ラングーンAsia/RangoonUTC+6:30
ノボシビルスクAsia/NovosibirskUTC+7
バンコクAsia/BangkokUTC+7
ハノイAsia/BangkokUTC+7
ジャカルタAsia/JakartaUTC+7
クラスノヤルスクAsia/KrasnoyarskUTC+7
北京Asia/ShanghaiUTC+8
重慶Asia/ChongqingUTC+8
香港Asia/Hong_KongUTC+8
クアラルンプールAsia/Kuala_LumpurUTC+8
シンガポールAsia/SingaporeUTC+8
台北Asia/TaipeiUTC+8
パースAustralia/PerthUTC+8
イルクーツクAsia/IrkutskUTC+8
ウラーンバートルAsia/UlaanbaatarUTC+8
ソウルAsia/SeoulUTC+9
大阪Asia/TokyoUTC+9
札幌Asia/TokyoUTC+9
東京Asia/TokyoUTC+9
ヤクーツクAsia/YakutskUTC+9
ダーウィンAustralia/DarwinUTC+9:30
アデレードAustralia/AdelaideUTC+9:30
キャンベラAustralia/MelbourneUTC+10
メルボルンAustralia/MelbourneUTC+10
シドニーAustralia/SydneyUTC+10
ブリスベンAustralia/BrisbaneUTC+10
ホーバートAustralia/HobartUTC+10
ウラジオストクAsia/VladivostokUTC+10
グアムPacific/GuamUTC+10
ポートモレスビーPacific/Port_MoresbyUTC+10
マガダンAsia/MagadanUTC+11
スレドネコリムスクAsia/SrednekolymskUTC+11
ソロモン諸島Pacific/GuadalcanalUTC+11
ニューカレドニアPacific/NoumeaUTC+11
フィジーPacific/FijiUTC+12
カムチャッカAsia/KamchatkaUTC+12
マーシャル諸島Pacific/MajuroUTC+12
オークランドPacific/AucklandUTC+12
ウェリントンPacific/AucklandUTC+12
ヌークアロファPacific/TongatapuUTC+13
トケラウ諸島Pacific/FakaofoUTC+13
サモアPacific/ApiaUTC+13
チャタム諸島Pacific/ChathamUTC+13:45

to_date

この formula は入力データを日付に変換します。YYYY-MM-DD 形式の日付を返します。

構文

String.first(format: format)

  • String - 入力日時、または日付や日時を表す文字列。
  • format - (任意) 文字列として記述された、入力データの日付形式。指定されていない場合、入力文字列が自動的に解析されます。

使用例

formula結果
"23-01-2020 10:30 pm".to_date(format: "DD-MM-YYYY")"2020-01-23"
"01-23-2020 10:30 pm".to_date(format: "MM-DD-YYYY")"2020-01-23"
"2020/01/23".to_date(format: "YYYY/MM/DD")"2020-01-23"

動作

入力データを日付データ型に変換します。

入力データのベストプラクティス

入力データの形式は指定することをお勧めします。形式が指定されていない場合、入力文字列は自動的に解析されます。

この formula が機能するには、入力文字列が日付に類似したものでなければなりません。

関連情報

  • strftime: 日付をカスタム書式で返します。
  • to_time: 文字列を ISO タイムスタンプに変換します。

to_time

文字列を ISO タイムスタンプに変換します。レスポンスには UTC タイムゾーン (+00:00) が使用されます。

構文

String.to_time(format)

  • String - 日付または日時を表す入力文字列。
  • format - 文字列として記述された、ユーザー定義の日時の書式。

使用例

formula結果
"2020-04-02T12:30:30.462659-07:00".to_time"2020-04-02T19:30:30.462659+00:00"
"2020-04-02".to_time"2020-04-02T00:00:00.000000+00:00"

動作

入力文字列を日時データ型に変換します。出力日時は UTC タイムゾーン (+00:00) に変換されます。

時間のオートフィル

入力データに時間が含まれていない場合、出力はデフォルトで 00:00:00.000000 +00:00 に設定されます。

関連情報

  • strftime: 日付をカスタム書式で返します。
  • to_date: この formula は日付に類似した入力データを日付に変換します。YYYY-MM-DD 形式の日付を返します。

パラメータ

上記で示されているように、各コード (%B%e%I など) は datetime の特定の要素を表します。カンマ (,)、スラッシュ (/)、コロン (:) といった静的なテキストや句読点を挿入することもできます。よく使われるコードについては、以下のリストを参照してください。

コード意味
(2020-06-05T17:13:27.000000-07:00)
%Y世紀を含む年2020
%m0を埋めて2桁にした月06
%B完全な月名June
%b短縮形の月名Jun
%d0を埋めて2桁にした日05
%e0を埋めて2桁にしない日5
%H1日の時間 (24時間制)17
%k0を埋めて2桁にしない1日の時間 (24時間制)17
%I (大文字の i)1日の時間 (12時間制)05
%l (小文字の L)0を埋めて2桁にしない1日の時間 (12時間制)5
%pAM または PMPM
%M時刻以下の分部分13
%S分以下の秒部分27
%L分以下のミリ秒部分000
%zUTC からのタイムゾーンのオフセット-0700
%😒UTC からのタイムゾーンのオフセット (書式設定あり)-07:00
%Zタイムゾーンの省略名UTC
%A完全な曜日名Friday

完全なリストについては、Ruby のドキュメントを参照してください。


to_i

日時をエポック時間に変換します。UTC (+00:00) でエポック時間を返します。

構文

Datetime.to_i

  • Datetime - 入力日時。

使用例

formula結果
today.to_time.to_i1645660800
now.to_i1645714000

動作

入力日時を整数に変換します。エポック時間を、ミリ秒単位ではなく秒単位で返します。出力日時は UTC タイムゾーン (+00:00) に変換されます。

エポック時間と日時の間の変換

Workato の formula を使用すると、時間の形式を簡単に変換できます。

人間が理解できる時間をエポック時間に変換する方法

to_i を使用して、日時のデータピルをエポック時間 (UTC) に変換してください。その動作の詳細については、こちらを参照してください。

エポック時間を人間が理解できる時間に変換する方法

以下の formula を使用して、エポック時間を人間が理解できる日時に変換してください。

出力が UTC タイムゾーン (+00:00) になることに注意してください。

"1970-01-01".to_time + エポック時間.seconds

エポック時間を特定のタイムゾーンに変換する場合は、in_time_zone を使用してタイムゾーンを指定する必要があります。

"1970-01-01".to_time.in_time_zone("US/Pacific") + Epoch time.seconds

データ型の誤り: 未定義のメソッド to_i

エポック時間には日時のデータピルが必要です。日付のデータピルを使用している場合は、エラーが発生します。

to_time を使用して日付を日時に変換してから、エポック時間への変換を行ってください。

関連情報

  • to_time: 文字列を ISO タイムスタンプに変換します。
  • to_date: この formula は日付に類似した入力データを日付に変換します。YYYY-MM-DD 形式の日付を返します。
  • in_time_zone: 時刻の値を別のタイムゾーンに変換します。

Last updated: