2018年04月21日
DATETIMEVALUE 時間計算
たまに日付/時間項目に数式でデフォルト値を設定するが、
今回、GMT時間・標準時間になるための計算についてメモをします
まず 日付/時間項目にデフォルト値を設定する場合があるかと思う
特に出勤や退勤の項目とか、ニーズによって、様々な設定も必要になってくる
デフォルトパターン1:Now()
デフォルトパターン2:数式で違う項目の値をなんかの計算結果を設定する
厄介はデフォルトパターン2、なぜなら、別の項目の値を持って来て、計算すると
Text()はたまに使うかも、使ったらどうなる?
・日付値を TEXT(NOW()) 関数でラップして、
NOW() は GMT にオフセットされます。
通常、NOW() は表示される時点でユーザのタイムゾーンに変換されますが、
この場合はテキストに変換されているため、この変換が行われません。
そのため、サンフランシスコ時間 (GMT-7) の 8 月 1 日午後 5 時にこの数式を実行すると、
「現在の日時は、2013–08–02 00:00:00Z です」と表示されます。
DATETIMEVALUE()の値を「+」OR「ー」時間なら、下記のようにできます
DATETIMEVALUE(
TEXT( DoDate__c ) & ' ' &
TEXT( DoHour__c ) & ':' &
TEXT( DoMinutes__c ) & ':00'
) - (9/24)
TEXT()によってローカル時間に変換されないため、DATETIMEVALUE()の結果をローカル日本に戻す
(9/24):9時間を表す
今回、GMT時間・標準時間になるための計算についてメモをします
この記事の目次
● デフォルト値設定
● TEXT()で変換後の値
● ローカルの時間にさせる計算
● デフォルト値設定
● 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
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/7572784
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック