2018年05月29日
DATETIMEVALUE 時間計算
たまに日付/時間項目に数式でデフォルト値を設定するが、 今回、GMT時間・標準時間になるための計算についてメモをします
この記事の目次 ● デフォルト値設定 ● TEXT()で変換後の値 ● ローカルの時間にさせる計算
デフォルト値設定
まず 日付/時間項目にデフォルト値を設定する場合があるかと思う 特に出勤や退勤の項目とか、ニーズによって、様々な設定も必要になってくる デフォルトパターン1:Now() デフォルトパターン2:数式で違う項目の値をなんかの計算結果を設定する 厄介はデフォルトパターン2、なぜなら、別の項目の値を持って来て、計算すると Text()はたまに使うかも、使ったらどうなる?
TEXT()で変換後の値
・日付値を TEXT(NOW()) 関数でラップして、 NOW() は GMT にオフセットされます。 通常、NOW() は表示される時点でユーザのタイムゾーンに変換されますが、 この場合はテキストに変換されているため、この変換が行われません。 そのため、サンフランシスコ時間 (GMT-7) の 8 月 1 日午後 5 時にこの数式を実行すると、 「現在の日時は、2013–08–02 00:00:00Z です」と表示されます。
日付/時間およびタイムゾーンの留意点 日付値および日付/時間値は GMT で格納されます。レコードを保存するときは、項目値がユーザのタイムゾーンから GMT に調整され、その後レコード詳細ページやレポートで表示される時点で閲覧者のタイムゾーンに戻されます。日付に変換することで問題が生じることはありません。日付/時間から日付に変換しても日付値は同じであるためです。 ただし、日付/時間の項目や値を処理する場合、変換は常にユーザのタイムゾーンではなく、GMT で行われます。標準の日付/時間項目から別の標準の日付/時間を減算する場合は、どちらの項目も同じタイムゾーンのため問題は生じません。他方、計算するいずれかの値が、テキストまたは日付値から日付/時間値に変換されたものである場合には、結果が異なります。 たとえば、サンフランシスコのユーザが、カスタムの Date_Time_c という日付/時間項目に 2013 年 8 月 2 日午前 12 時の値を入力するとします。太平洋夏時間の時差は GMT-7 のため、この値は 2013–08–02 07:00:00Z として保存されます。8 月 1 日午後 12 時 (PDT) に、ユーザがレコードを表示して、次の数式を実行します。
ローカルの時間にさせる計算
DATETIMEVALUE()の値を「+」OR「ー」時間なら、下記のようにできます DATETIMEVALUE( TEXT( DoDate__c ) & ' ' & TEXT( DoHour__c ) & ':' & TEXT( DoMinutes__c ) & ':00' ) - (9/24) TEXT()によってローカル時間に変換されないため、DATETIMEVALUE()の結果をローカル日本に戻す (9/24):9時間を表す
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image
-
no image
-
no image
-
no image
この記事へのコメント
コメントを書く