Salesforceを使っていて地味に困る問題。
標準項目で用意されている「作成日」「最終更新日」などが、
日付項目として用意されていること。
結構こういうのは時間まで知りたい場合が多い。
カスタム項目であれば日付/時間項目で作成すればいいのだが、
標準項目となると型変換はできない。
なのでカスタム項目の数式で「作成日」「最終更新日」を
読み込んで時間や曜日を表示させる必要がある。
カスタム項目の作成へは以下の手順でいける。
>|
設定 → アプリケーションの設定 → リード → 項目 → カスタム項目の「新規」を押下
|<
** 時間・分・秒まで表示させる
>|
データ型は「数式」を選択 → 「日付/時間」型を選択 → 数式に「LastModifiedDate」
|<
日付型である最終更新日(LastModifiedDate)を日付/時間型で出力するだけでOK。
日付型でありながら時間まで持っているからできる芸当。
作成日のときは「CreatedDate」を指定。
** 時間・分・秒に加え曜日も表示する
曜日まで含めると日時/時間型では無理なんで、
テキスト型で表現する必要がある。
>|
データ型は「数式」を選択 → 「テキスト」型を選択 → 数式に下記を入力
|<
>|plain|
LEFT( TEXT( LastModifiedDate + 0.375 ), 10 )
& "(" &
IF(
ISNULL( LastModifiedDate ),
"",
CASE( MOD( DATEVALUE(LastModifiedDate + 0.375) - DATE(1900, 1, 7), 7 ),
0, "日",
1, "月",
2, "火",
3, "水",
4, "木",
5, "金",
"土"
)
)
& ") " &
MID( TEXT( LastModifiedDate + 0.375 ), 11, 9 )
||<
テキスト型で日時を出力するときに気を付けるのがタイムゾーン。
>https://help.salesforce.com/HTViewHelpDoc?id=formula_using_date_datetime.htm&language=ja:title=数式での日付値および日付/時間値の使用の概要>
日付値および日付/時間値は GMT で格納されます。レコードを保存するときは、項目値がユーザのタイムゾーンから GMT に調整され、その後レコード詳細ページやレポートで表示される時点で閲覧者のタイムゾーンに戻されます。日付に変換することで問題が生じることはありません。日付/時間から日付に変換しても日付値は同じであるためです。
ただし、日付/時間の項目や値を処理する場合、変換は常にユーザのタイムゾーンではなく、GMT で行われます。標準の日付/時間項目から別の標準の日付/時間を減算する場合は、どちらの項目も同じタイムゾーンのため問題は生じません。他方、計算するいずれかの値が、テキストまたは日付値から日付/時間値に変換されたものである場合には、結果が異なります。
<<
『日付/時間およびタイムゾーンの留意点』に書いてあるが、
Salesforceで保存される日付データはすべてGMTで格納される。
それを表示させるユーザのタイムゾーンによって、
表示させる時間を変えているらしい。
数式で計算するときもGMTで処理されるようなので、
テキストに加工する前に日本時間に合わせないといけない。
>https://help.salesforce.com/HTViewHelpDoc?id=formula_using_date_datetime.htm&language=ja:title=数式での日付値および日付/時間値の使用の概要>
Date_Time_c - DATETIMEVALUE( "2013-08-01 12:00:00" )
この場合、DATETIMEVALUE( “2013–08–01 12:00:00” ) は 2013–08–01 12:00:00Z で、0.79167 (19 時間) という結果が返されます。
<<
1時間以下は小数点で表すようなので、
日本時間に調整する「+9時間」は「+0.375」で計算できる。
あとはLEFTやMIDを使って必要な時間部分をうまいこと切り出して足すだけ。
曜日は公式にあるサンプルから取ってきたものを流用した。
- [https://help.salesforce.com/apex/HTViewHelpDoc?id=formula_examples_dates.htm&language=ja:title=一般的な日付数式]
- [https://help.salesforce.com/HTViewHelpDoc?id=customize_functions_i_z.htm&language=ja:title=数式の演算子と関数 I – Z]