【Salesforce】数式で日付⇔テキスト変換、日付フォーマットまとめ

テキストへ変換 TEXT関数

日付→テキスト変換

TEXT( TODAY() )

「YYYY-MM-DD」の形式で返ってきます。

内部のデータでは時間が「12:00:00」になっているので、タイムゾーンが12時間以上ある国では1日前後のずれが発生するのでご注意を!

日付/時間→テキスト変換

TEXT( NOW() )

「YYYY-MM-DD HH:MM:SS」の形式で、末尾に GMT を表す「Z」が付記されます。

実際の値は「2023–04–01 00:00:00Z」このようになります。

日付/時間→テキスト変換(日本標準時

SUBSTITUTE(TEXT(  ( NOW() + 9/24) ), 'Z', '')

日本のタイムゾーンは+9時間です。

1日を24時間で割って、9時間掛けてあげれば良いわけです。

1/24*9 を加算すれば日本のタイムゾーン変換できます。

さらに最後に「Z」の文字がついてしまうため、空文字に置換してあげます。

時間→テキスト変換

TEXT( TIMENOW() )

「HH:MM:SS.MS」の形式で返ってきます。

実際の値は「00:00:00.000」このようになります。

時間→テキスト変換(日本標準時

TEXT( TIMENOW() + 32400000 )

日本のタイムゾーンは+9時間です。

9時間をミリ秒の単位にして加算すれば良いです。

9*60*60*1,000=3,2400,000を足してあげます。

日付・日付/時間・時間に変換

テキスト→日付変換 DATEVALUE関数

DATEVALUE( "2023-04-01" )

テキスト→日付/時間変換 DATETIMEVALUE関数

DATETIMEVALUE("2023-04-01 12:00:00")

テキスト→時間変換 TIMEVALUE関数

TIMEVALUE("17:00:00.125")

日付/時間→日付変換

DATEVALUE( NOW() )

数値→日付変換

DATE( 2024, 4, 1 )

YYYY-M-Dフォーマット(先頭ゼロなし)

TEXT(YEAR(TODAY())) & "-" & TEXT(MONTH(TODAY())) & "-" & TEXT(DAY(TODAY()))
「2024-4-1」のようになります。

YYYY/MM/DDフォーマット

SUBSTITUTE(TEXT(TODAY()), '-', '/')

YEAR関数・MONTH関数・DAY関数を使っても良いのですが、ゼロ埋めしないといけないので、置換した方が簡単です。

LEFT関数・MID関数・RIGHT関数を使ったパターンも一応置いておきます。

LEFT(TEXT(TODAY(),4) + "/" + MID(TEXT(TODAY(),6,2) + "/" + RIGHT(TEXT(TODAY(),2)

年月のみ(YYYY/MM)

LEFT(TEXT(TODAY(),4) + "/" + MID(TEXT(TODAY(),6,2)
結合する文字列”/”を他のものに変えても使い勝手が良さそうです。

YYYYMMDDフォーマット

SUBSTITUTE(TEXT(TODAY()), '-', '')

YYYYMMDDHHmmss(日本標準時

SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(TEXT( ( NOW() + 9/24) ), 'Z', '') , '-' ,'') , ':' ,'') , ' ' ,'')

ファイル名によくつける書式ですね。

必要ない記号や空白を置換するようにすればMID関数やそれぞれを数値型で取るよりも短く書けます。

月末日(YYYY-MM-DD)

TEXT( DATE( YEAR( ADDMONTHS( DATE__C , 1 ) ), MONTH( ADDMONTHS( DATE__C , 1 ) ), 1 ) - 1 )

参照

https://help.salesforce.com/s/articleView?id=sf.formula_using_date_datetime.htm&type=5