フォーマット関数
フォーマット関数は、値を人または宛先システムが読み取る文字列に変換します。また、文字列を解析して値に戻します。
ここで重要なのは、フォーマットと変換の区別です。 format_dateは、表示用、または特定のレイアウトを要求するシステム用のテキストを生成します。日付は生成しません。結果はStringであり、算術演算をサポートしていません。最後のフォーマット手順まで、値は元の型のまま保持してください。
機能の提供状況
WELは現在、一部のお客様にご利用いただけます。ご利用のワークスペースで利用可能かどうかを確認するには、Customer Success Representativeにお問い合わせください。
日付と時刻のフォーマット
format_date、format_datetime、format_timeはそれぞれ、strftimeパターンまたは名前付きプリセットを受け取ります。次の表に一般的なディレクティブを示します。
| ディレクティブ | 意味 | 例 |
|---|---|---|
%Y | 4桁の年 | 2026 |
%m | 2桁の月 | 03 |
%d | 2桁の日 | 15 |
%b | 月の省略名 | Mar |
%H | 時、24時間制 | 09 |
%M | 分 | 30 |
%S | 秒 | 00 |
format_date
PlainDateをフォーマットします。
format_date(date, pattern)| パラメーター | 説明 |
|---|---|
| date | フォーマットするPlainDate。 |
| pattern | strftimeパターンまたは名前付きプリセット。 |
日付を日/月/年としてフォーマット
次の例では、日/月/年パターンを使用して日付をフォーマットします。
Formula
format_date(PlainDate('2026-03-15'), '%d/%m/%Y')出力
15/03/2026format_datetime
DateTimeまたはPlainDateTimeをフォーマットします。
format_datetime(datetime, pattern)| パラメーター | 説明 |
|---|---|
| datetime | フォーマットするDateTimeまたはPlainDateTime。 |
| pattern | strftimeパターンまたは名前付きプリセット。 |
日時を日付と時刻付きでフォーマット
次の例では、日付と時刻の両方を表示する日時をフォーマットします。
Formula
format_datetime(DateTime('2026-03-15T09:30:00Z'), '%Y-%m-%d %H:%M')出力
2026-03-15 09:30format_time
PlainTimeをフォーマットします。
format_time(time, pattern)| パラメーター | 説明 |
|---|---|
| time | フォーマットするPlainTime。 |
| pattern | strftimeパターンまたは名前付きプリセット。 |
時刻を時と分としてフォーマット
次の例では、時刻を時と分としてフォーマットします。
Formula
format_time(PlainTime('09:30:00'), '%H:%M')出力
09:30標準タイムスタンプ形式
プロトコルで標準レイアウトが必要な場合は、手書きのパターンよりもto_rfc3339とto_rfc2822を優先してください。これらの関数は、手動で維持されるパターンに依存せずに、必要な形式を保持します。
to_rfc3339
DateTimeをRFC 3339としてフォーマットします。これは、ほとんどのJSON APIで想定される形式です。
0以外の秒を含むオフセットを拒否します。
to_rfc3339(datetime)| パラメーター | 説明 |
|---|---|
| datetime | フォーマットするDateTime。 |
日時をRFC 3339としてフォーマット
次の例では、日時をRFC 3339としてフォーマットします。
Formula
to_rfc3339(DateTime('2026-03-15T09:30:00Z'))出力
2026-03-15T09:30:00Zto_rfc2822
DateTimeをRFC 2822としてフォーマットします。これはメールヘッダーで使用される形式です。
0以外の秒を含むオフセットを拒否します。
to_rfc2822(datetime)| パラメーター | 説明 |
|---|---|
| datetime | フォーマットするDateTime。 |
日時をRFC 2822としてフォーマット
次の例では、日時をRFC 2822としてフォーマットします。
Formula
to_rfc2822(DateTime('2026-03-15T09:30:00Z'))出力
Sun, 15 Mar 2026 09:30:00 +0000日時の解析
次の関数は、文字列を時間型に解析します。これは、フォーマットの逆の処理です。
parse_datetime
文字列をDateTimeに解析します。
parse_datetime(text, options)| パラメーター | 説明 |
|---|---|
| テキスト | 解析する文字列。 |
| options | 文字列の解析方法を制御する任意のマップ。
|
認識されないオプションキーは無視されず、E222を発生させます。
RFC 3339日時文字列を解析
次の例では、RFC 3339形式の日時文字列を解析します。
Formula
parse_datetime('2026-03-15T09:30:00Z')出力
2026-03-15T09:30:00Zカスタム形式を使用して日時を解析
次の例では、カスタムの日/月/年形式を使用して日時文字列を解析します。
Formula
parse_datetime('15/03/2026', {format: '%d/%m/%Y'})出力
2026-03-15T00:00:00Z日付のみの文字列はUTCの午前0時になります
2行目は00:00:00Zに解析されます。これは、DateTimeには時刻とゾーンが必要で、入力にはどちらも指定されていないためです。値が瞬間ではなくカレンダー日付である場合は、代わりにPlainDateを使用してください。 PlainDateでは、後続のステップでゾーンが適用されても日付がずれることはありません。
入力にゾーンがないものの、その入力がどのゾーンから来たか分かっている場合は、default_tzを使用してください。指定しない場合、ローカル時刻があいまいになる、または存在しない年2日の処理は、on_gapとon_foldによって決まります。
parse_plain_datetime
ゾーンが付いていない文字列をPlainDateTimeに解析します。
唯一のオプションはformatです。認識されないオプションキーはE222を発生させます。
parse_plain_datetime(text, options)| パラメーター | 説明 |
|---|---|
| テキスト | 解析する文字列。 |
| options | formatキーを持つ任意のマップ。 |
カスタム形式を使用してプレーン日時を解析
次の例では、カスタム形式を使用してプレーン日時文字列を解析します。
Formula
parse_plain_datetime('2026-03-15 09:30', {format: '%Y-%m-%d %H:%M'})出力
2026-03-15T09:30:00数値のフォーマット
これらはいずれも、引数として渡されるのではなく、Transform dataアクションで設定されるデータプレーンロケールを使用します。同じ式でも、ロケールによってレンダリングが異なります。
次の例は、デフォルトロケールen-USを示しています。
to_local_string
ロケールの桁区切り記号と小数点記号を使用して数値をフォーマットします。
to_local_string(number)| パラメーター | 説明 |
|---|---|
| number | フォーマットする数値。 |
ロケールの桁区切りを使用して数値をフォーマット
次の例では、ロケールの桁区切り記号と小数点記号を使用して数値をフォーマットします。
Formula
to_local_string(1234567.891)出力
1,234,567.89to_local_currency
ロケールの通貨記号と表記規則を使用して、数値を通貨金額としてフォーマットします。
to_local_currency(number)| パラメーター | 説明 |
|---|---|
| number | フォーマットする数値。 |
数値を通貨金額としてフォーマット
次の例では、数値を通貨金額としてフォーマットします。
Formula
to_local_currency(1234.5)出力
$1,234.50リストを文字列に結合
次の関数は、リストの要素を1つの区切り文字付き文字列に結合します。
join_to_string
任意の区切り文字を使用して、リストの要素を1つの文字列に結合します。区切り文字を省略すると、要素が直接連結されます。
join_to_string(list, separator)| パラメーター | 説明 |
|---|---|
| list | 結合するリスト。 |
| separator | 要素間に配置される任意の文字列。 |
区切り文字を使用してリスト要素を結合
次の例では、カンマ区切り文字を使用してリスト要素を結合します。
Formula
join_to_string(['a', 'b', 'c'], ', ')出力
a, b, c区切り文字なしでリスト要素を結合
次の例では、区切り文字なしでリスト要素を直接結合します。
Formula
join_to_string(['a', 'b'])出力
abjoin_to_local_string
指定した区切り文字ではなく、データプレーンロケールのリスト区切り文字を使用して要素を結合します。
join_to_local_string(list, separator)| パラメーター | 説明 |
|---|---|
| list | 結合するリスト。 |
| separator | ロケールの区切り文字に対する任意のオーバーライド。 |
ロケール区切り文字を使用してリスト要素を結合
次の例では、データプレーンロケールの区切り文字を使用してリスト要素を結合します。
Formula
join_to_local_string(['a', 'b', 'c'])出力
a, b, cWELへのシリアライズ
次の関数は、ログ記録とデバッグのために、値をWEL独自のリテラル構文にシリアライズします。
to_wel
値を、同じ値に解析し直せるWELリテラルにシリアライズします。
to_welは、値の近似ではなく、値の実態を正確に示すため、ログ記録や変換のデバッグに役立ちます。レシピの外に出るデータにはto_jsonを使用します。
to_wel(value)| パラメーター | 説明 |
|---|---|
| value | シリアライズする値。 |
マップをWELリテラルにシリアライズ
次の例では、マップをWELリテラルにシリアライズします。
Formula
to_wel({sku: 'WID-1', qty: 3})出力
{sku: 'WID-1', qty: 3}ユースケース: 注文確認行の作成
注文確認行では、複数の値を組み合わせて1つの完成した文にする必要があります。最後に一度だけ、f-stringで値をフォーマットします。
入力
{
"id": "SO-1001",
"ship_date": "2026-03-15",
"total": 149.5
}Formula
f"Order {_.id} ships {format_date(PlainDate(_.ship_date), '%d %b %Y')} for {to_local_currency(_.total)}"出力
"Order SO-1001 ships 15 Mar 2026 for $149.50"日付はフォーマット前にPlainDateに変換されるため、日付がずれることはありません。通貨はハードコーディングせずにロケールに任せるため、別の地域向けに設定されたレシピでも同じ式が正しく機能します。
関連情報
- Temporal関数: 値をフォーマットする前に、算術演算とタイムゾーンを処理します。
- 変換関数: 各データ型を構築する方法。
- 文字列とフォーマット: F-stringとフォーマット仕様。
- Transform data: これらの関数が使用するデータプレーンロケールを設定します。
最終更新日: