Loading
Salesforce から送信されるメールは、承認済ドメインからのみとなります続きを読む

夏時間を考慮した時刻を返す数式

公開日: Apr 2, 2026
説明
※この記事は英語版を翻訳しており、一部機械翻訳を含むため内容は後日更新される可能性があります。最新の内容は英語版を参照してください。表示言語は画面右下の言語名から切り替えられます。

数式を使用して日付/時刻項目の時刻部分を取得すると、時刻が GMT/UTC タイムゾーンになります。数式をオフセットすることで現在地のタイムゾーンが表示されますが、夏時間調整のために年に 2 回オフセットを変更する必要があります。
解決策
次の数式では、特定のタイムゾーンと夏時間調整に従って日付/時刻項目をオフセットした時刻が返されます。

注意事項:
 
  • これらは正しい時刻表記です。いずれかの国で夏時間調整に関する法律が変更された場合、それに合わせて数式の調整が必要になります。
  • これらの数式はここで紹介しているタイムゾーンでのみ機能します。別のタイムゾーンにいる場合はそれに合わせて調整してください。

AM/PM 形式でテキストを時刻で返す
軍用時間を数値として返す

AM/PM 形式でテキストを時刻で返す

東海岸のタイムゾーン:
IF( OR(
DateTimeField< DATETIMEVALUE(DATE(YEAR(DATEVALUE(DateTimeField)),3,14)
-(WEEKDAY(DATE(YEAR(DATEVALUE(DateTimeField)),3,14))-1))+7/24, /*日時が 3 月の第 2 日曜日より前 (冬時間の最終日) の場合*/
DateTimeField>= DATETIMEVALUE(DATE(YEAR(DATEVALUE(DateTimeField)),11,7)
-(WEEKDAY(DATE(YEAR(DATEVALUE(DateTimeField)),11,7))-1))+7/24 /*または、日時が 11 月の第 1 日曜日より後 (冬時間の初日) の場合*/
),
IF(HOUR(TIMEVALUE(DateTimeField-5/24))=0,"12",
TEXT(
HOUR(TIMEVALUE(DateTimeField-5/24))
-IF(HOUR(TIMEVALUE(DateTimeField-5/24))>23,24,0)-
IF(HOUR(TIMEVALUE(DateTimeField-5/24))
-IF(HOUR(TIMEVALUE(DateTimeField-5/24))>23,24,0)>12, 12,0)))+":"+
LPAD(TEXT(MINUTE( TIMEVALUE(DateTimeField  ))),2, "0")+
IF(HOUR(TIMEVALUE(DateTimeField-5/24))
-IF(HOUR(TIMEVALUE(DateTimeField-5/24))>23,24,0)>11, " P"," A") /*時間の部分を返し、冬時間の場合は 5 時間オフセット*/
,
IF(HOUR(TIMEVALUE(DateTimeField-4/24))=0,"12",
TEXT(HOUR(TIMEVALUE(DateTimeField-4/24))
-IF(HOUR(TIMEVALUE(DateTimeField-4/24))>23,24,0)-
IF(HOUR(TIMEVALUE(DateTimeField-4/24))
-IF(HOUR(TIMEVALUE(DateTimeField-4/24))>23,24,0)>12,12,0)))
+":"+
LPAD(TEXT(MINUTE( TIMEVALUE(DateTimeField ))),2, "0")+

-IF(HOUR(TIMEVALUE(DateTimeField-4/24))>23,24,0)>11, " P"," A") /*時間の部分を返し、夏時間の場合は 4 時間オフセット*/
)
+"M"

西海岸のタイムゾーン:
IF( OR(

-(WEEKDAY(DATE(YEAR(DATEVALUE(DateTimeField)),3,14))-1))+10/24, /*日時が 3 月の第 2 日曜日より前 (冬時間の最終日) の場合*/

-(WEEKDAY(DATE(YEAR(DATEVALUE(DateTimeField)),11,7))-1))+10/24 /*または、日時が 11 月の第 1 日曜日より後 (冬時間の初日) の場合*/
),
IF(HOUR(TIMEVALUE(DateTimeField-8/24))=0,"12",
TEXT(
HOUR(TIMEVALUE(DateTimeField-8/24))
-IF(HOUR(TIMEVALUE(DateTimeField-8/24))>23,24,0)-
IF(HOUR(TIMEVALUE(DateTimeField-8/24))
-IF(HOUR(TIMEVALUE(DateTimeField-8/24))>23,24,0)>12, 12,0)))+":"+

IF(HOUR(TIMEVALUE(DateTimeField-8/24))
-IF(HOUR(TIMEVALUE(DateTimeField-8/24))>23,24,0)>11, " P"," A") /*時間の部分を返し、冬時間の場合は 8 時間オフセット*/
,
IF(HOUR(TIMEVALUE(DateTimeField-7/24))=0,"12",
TEXT(
HOUR(TIMEVALUE(DateTimeField-7/24))
-IF(HOUR(TIMEVALUE(DateTimeField-7/24))>23,24,0)-
IF(HOUR(TIMEVALUE(DateTimeField-7/24))
-IF(HOUR(TIMEVALUE(DateTimeField-7/24))>23,24,0)>12,12,0)))
+":"+

IF(HOUR(TIMEVALUE(DateTimeField-7/24))
-IF(HOUR(TIMEVALUE(DateTimeField-7/24))>23,24,0)>11, " P"," A") /*時間の部分を返し、夏時間の場合は 7 時間オフセット*/
)
+"M"

GMT タイムゾーン (英国やアイルランドなど):
IF( OR(DateTimeField<= DATETIMEVALUE(DATE(YEAR(DATEVALUE(DateTimeField)),3,31)-(WEEKDAY(DATE(YEAR(DATEVALUE(DateTimeField)),3,31))-1) +1/24), /*日時が 3 月の最終日曜日より前 (冬時間の最終日) の場合*/
DateTimeField> DATETIMEVALUE(DATE(YEAR(DATEVALUE(DateTimeField)),10,31)- (WEEKDAY(DATE(YEAR(DATEVALUE(DateTimeField)),10,31))-1)+1/24)) /*または、日時が 10 月の最終日曜日より後 (冬時間の初日) の場合*/
,
IF(HOUR(TIMEVALUE(DateTimeField))=0,"12",
TEXT(
HOUR(TIMEVALUE(DateTimeField))
-IF(HOUR(TIMEVALUE(DateTimeField))>23,24,0)-
IF(HOUR(TIMEVALUE(DateTimeField))
-IF(HOUR(TIMEVALUE(DateTimeField))>23,24,0)>12, 12,0)))+":"+


-IF(HOUR(TIMEVALUE(DateTimeField))>23,24,0)>11, " P"," A") /*冬時間の場合は時間の部分を返す*/
,
IF(HOUR(TIMEVALUE(DateTimeField+1/24))=0,"12",
TEXT(
HOUR(TIMEVALUE(DateTimeField+1/24))
-IF(HOUR(TIMEVALUE(DateTimeField+1/24))>23,24,0)-
IF(HOUR(TIMEVALUE(DateTimeField+1/24))
-IF(HOUR(TIMEVALUE(DateTimeField+1/24))>23,24,0)>12,12,0)))
+":"+

IF(HOUR(TIMEVALUE(DateTimeField+1/24))
-IF(HOUR(TIMEVALUE(DateTimeField+1/24))>23,24,0)>11, " P"," A") /*時間の部分を返し、夏時間の場合は 1 時間オフセット*/
)
+"M"


GMT+1 のタイムゾーン (フランスやスペインなど):
IF( OR(DateTimeField<= DATETIMEVALUE(DATE(YEAR(DATEVALUE(DateTimeField)),3,31)-(WEEKDAY(DATE(YEAR(DATEVALUE(DateTimeField)),3,31))-1) +1/24), /*日時が 3 月の最終日曜日より前 (冬時間の最終日) の場合*/

,

TEXT(
HOUR(TIMEVALUE(DateTimeField+1/24))
-IF(HOUR(TIMEVALUE(DateTimeField+1/24))>23,24,0)-
IF(HOUR(TIMEVALUE(DateTimeField+1/24))
-IF(HOUR(TIMEVALUE(DateTimeField+1/24))>23,24,0)>12,12,0)))
+":"+

IF(HOUR(TIMEVALUE(DateTimeField+1/24))
-IF(HOUR(TIMEVALUE(DateTimeField+1/24))>23,24,0)>11, " P"," A") /*時間の部分を返し、冬時間の場合は 1 時間オフセット*/
,
IF(HOUR(TIMEVALUE(DateTimeField+2/24))=0,"12",
TEXT(
HOUR(TIMEVALUE(DateTimeField+2/24))
-IF(HOUR(TIMEVALUE(DateTimeField+2/24))>23,24,0)-
IF(HOUR(TIMEVALUE(DateTimeField+2/24))
-IF(HOUR(TIMEVALUE(DateTimeField+2/24))>23,24,0)>12,12,0))
+":"+


-IF(HOUR(TIMEVALUE(DateTimeField+2/24))>23,24,0)>11, " P"," A") /*時間の部分を返し、夏時間の場合は 2 時間オフセット*/
)
+"M"

軍用時間を数値として返す

東海岸のタイムゾーン:
IF( OR(




),
HOUR(TIMEVALUE(DateTimeField-5/24))
-IF(HOUR(TIMEVALUE(DateTimeField-5/24))>23,24,0) /*時間を軍形式で返し、冬時間の場合は 5 時間オフセット*/
,
HOUR(TIMEVALUE(DateTimeField-4/24))
-IF(HOUR(TIMEVALUE(DateTimeField-4/24))>23,24,0)) /*時間を軍形式で返し、夏時間の場合は 4 時間オフセット*/


西海岸のタイムゾーン:
IF( OR(

-(WEEKDAY(DATE(YEAR(DATEVALUE(DateTimeField)),3,14))-1))+10/24, /*日時が 3 月の第 2 日曜日より前 (冬時間の最終日) の場合*/


),
HOUR(TIMEVALUE(DateTimeField-8/24))
-IF(HOUR(TIMEVALUE(DateTimeField-8/24))>23,24,0) /*時間を軍形式で返し、冬時間の場合は 8 時間オフセット*/
,
HOUR(TIMEVALUE(DateTimeField-7/24))
-IF(HOUR(TIMEVALUE(DateTimeField-7/24))>23,24,0)) /*時間を軍形式で返し、夏時間の場合は 7 時間オフセット*/

GMT タイムゾーン (英国やアイルランドなど):
DateTimeField> DATETIMEVALUE(DATE(YEAR(DATEVALUE(DateTimeField)),10,31)- (WEEKDAY(DATE(YEAR(DATEVALUE(DateTimeField)),10,31))-1)+1/24)), /*または、日時が 10 月の最終日曜日より後 (冬時間の初日) の場合*/

-IF(HOUR(TIMEVALUE(DateTimeField))>23,24,0) /*時間を軍形式で返す*/
,
HOUR(TIMEVALUE(DateTimeField+1/24))
-IF(HOUR(TIMEVALUE(DateTimeField+1/24))>23,24,0) /*時間を軍形式で返し、夏時間の場合は 1 時間オフセット*/
)

GMT+1 のタイムゾーン (フランスやスペインなど):
DateTimeField> DATETIMEVALUE(DATE(YEAR(DATEVALUE(DateTimeField)),10,31)- (WEEKDAY(DATE(YEAR(DATEVALUE(DateTimeField)),10,31))-1)+1/24)), /*または、日時が 10 月の最終日曜日より後 (冬時間の初日) の場合*/
HOUR(TIMEVALUE(DateTimeField+1/24))
-IF(HOUR(TIMEVALUE(DateTimeField+1/24))>23,24,0) /*時間を軍形式で返し、冬時間の場合は 1 時間オフセット*/
,
HOUR(TIMEVALUE(DateTimeField+2/24))
-IF(HOUR(TIMEVALUE(DateTimeField+2/24))>23,24,0) /*時間を軍形式で返し、夏時間の場合は 2 時間オフセット*/
)


__________________________________________________


Written by:Eric Praud | Salesforce MVP
Eric 氏は Epam PolSource 社のシニアコンサルタントであり、12 年間にわたって Salesforce エコシステムに携わってきました。Eric 氏は Salesforce サポートエージェントとして Salesforce のキャリアをスタートさせました。多くの人がそうであるように、偶然このプラットフォームに巡り合い、それ以来熱心に取り組んでいます。アンサーコミュニティで非常に活発に活動しており、2021 年 3 月より Salesforce MVP を務めています。

これらの回答は回答を提供したユーザーの意見のみを反映したものであり、ユーザーが Salesforce と提携しているか否かにかかわらず Salesforce の意見ではありません。第三者によって、または第三者に代わって提供された製品、サービス、情報、データ、コンテンツ、その他の資料 (以下「第三者資料」) が含まれる場合があります。Salesforce は第三者資料の正確性、有効性、適時性、網羅性、信頼性、完全性、品質、適法性、有用性、安全性、該当する知的財産権について、管理も支持もしておらず、それに関する責任を負いません。投稿された質問に対してメッセージボードやフォーラムで提供された回答、Salesforce やプログラムに関する質問などに答えることを意図した回答は、一般的な知識としてのみ利用でき、特定の質問に対する回答として捉えないでください (最良な回答または同様の評価がされた回答としてマークされている場合でも同様です)。特定の質問に対する回答は、必ず Salesforce サポートにお問い合わせください。Salesforce は回答を管理しておらず、回答の第三者による使用または誤用 (共有を含む) について一切責任を負いません。

ご質問がある場合は、こちら (https://trailhead.salesforce.com/trailblazer-community/feed) から Trailblazer Community 全体の英知を活用してください。

ナレッジ記事番号

000394902

 
読み込み中
Salesforce Help | Article