Salesforce関連の記事を書いています。

  1. Salesforce

Salesforceフローでの日付・時間の扱いとUTC/JSTの違いによる影響

Salesforceフローを活用して業務を自動化する際、データの取得条件に日付や時間を利用することは非常に多いです。しかし、Salesforceはシステム内部では日付・時間情報をUTC(協定世界時)で管理しているため、日本時間(JST)で条件指定をすると意図しない結果になることがあります。本記事では、フローで日付・時間を軸にデータを取得する際に注意すべきUTCとJSTの違いについて解説します。

1. Salesforceの日時管理の基本

SalesforceのDateTime型のフィールドは、内部的には**UTC(協定世界時)**で保存されます。Salesforceでは「GMT」と表記されることもありますが、技術的にはUTCが正確な表現です。

ユーザーがUI上で日時を入力すると、Salesforceはそのユーザーのタイムゾーン設定に応じて表示を調整します。たとえば、日本のユーザーが「2025/09/06 10:00」と入力した場合、Salesforce内部では「2025/09/06 01:00 UTC」として保存されます。

つまり、ユーザーのタイムゾーン表示と内部的な保存時刻には差があることを理解しておく必要があります。

重要なポイント

  • Date型項目:タイムゾーンの影響を受けない
  • DateTime型項目:UTCで保存され、表示時にユーザーのタイムゾーンに変換される(今回はこの話です)
  • Time型項目:タイムゾーンの影響を受けない

2. フローの「取得要素(Get Records)」での注意点

Salesforceフローで「取得要素」を使い、日付・時間を条件にレコードを取得する場合、問題が発生しやすいです。

例:特定時間帯のレコードを取得するケース

JSTで「2025/09/06 10:00~15:00」の間に作成されたレコードを取得したい場合:

JST時間

10:00 JST → 01:00 UTC
15:00 JST → 06:00 UTC

フローでの実際の条件は以下のようになります:

CreatedDate >= 2025/09/06 01:00:00Z AND 
CreatedDate <= 2025/09/06 06:00:00Z

上記のようにJSTとUTCでは、9時間の差があるため意図した時間帯のレコードを取得できない結果になります。必ずデバック機能を使って意図した時間帯のレコードを取得できているか確認してください。

4. 対策方法

(1) Date型フィールドやDATEVALUE関数を利用する

日時の時間部分を気にせず「日付単位」で取得したい場合:

DATEVALUE(CreatedDate) = TODAY()

この方法により、ユーザータイムゾーンでの今日の日付として正確に判定できます。

(2) 数式リソースでタイムゾーン変換を行う

時間まで指定する場合は、数式リソースを使用してタイムゾーン変換を明示的に行います。

数式例:JST時刻をUTCに変換

DATETIMEVALUE("2025-09-06 10:00:00") - TIME(9, 0, 0, 0)

5. 注意すべきケース

スケジュールトリガーフロー

毎日午前0時に起動するスケジュールフローは、フローを作成したユーザーのタイムゾーン基準で実行されます。日本のユーザーが作成したフローであれば、JST午前0時に実行されます。

6. ベストプラクティス

推奨される設計パターン

  1. 日付のみの条件DATEVALUE()関数を使用
  2. 時間を含む条件:数式リソースで明示的にタイムゾーン変換
  3. テスト:異なるタイムゾーンのユーザーでテストを実行

コード例:安全な日時条件の作成

数式リソース例

今日の開始時刻(JST 00:00をUTCに変換)
DATETIMEVALUE(TEXT(TODAY()) + " 00:00:00") - TIME(9, 0, 0, 0)

今日の終了時刻(JST 23:59をUTCに変換)  
DATETIMEVALUE(TEXT(TODAY()) + " 23:59:59") - TIME(9, 0, 0, 0)

7. まとめ

Salesforceフローで日付・時間を条件にレコードを取得する際は、以下の点を押さえることが重要です:

重要ポイント

  1. SalesforceはDateTime型フィールドを内部的にUTCで管理
  2. JSTで条件を設定する場合は、UTCとの時差(-9時間)を考慮
  3. 日付単位での取得はDATEVALUE関数を使用
  4. 時間を含む条件は数式リソースで明示的に変換

これらを実践することで、取得ミスや意図しない動作を大幅に減らすことができます。

Salesforceの最近記事

  1. Salesforceフローでの日付・時間の扱いとUTC/JSTの違いによる影響

  2. Salesforceで「半角カタカナ禁止」+「特定記号のみ許可」の入力規則

  3. 【Salesforce】変更セットで項目を高速検索する裏技!1万件表示でCtrl+F活用術…

  4. Salesforceで関連リストのテキストを取得して項目に格納する方法

  5. Salesforceの商談名の命名ルールを自動設定して業務効率を向上させる方法

関連記事

プロフィール
●氏名:ARAKAN
●年齢:32歳
●居住地:九州
●勤務先:情報システム部
●一言:とある企業でSalesforce管理者として勤務しているARAKANです。業務の中での気づきやTipsを投稿しています。
<保有資格>
・Salesforce認定 アドミニストレーター
・Salesforce認定 上級アドミニストレーター
・Salesforce認定 Sales Cloudコンサルタント
・Salesforce認定 Service Cloudコンサルタント
・Salesforce認定Marketing Cloud Account Engagement コンサルタント
・Salesforce認定Marketing Cloud Account Engagement スペシャリスト
カレンダー
2025年9月
1234567
891011121314
15161718192021
22232425262728
2930 
言語切り替え
PAGE TOP