Loading
システム管理者に対するフィッシング耐性MFA・全従業員ユーザーMFAの適用のお知らせ 続きを読む
ただいま大変多くのお問い合わせをいただいており、ご連絡までにお時間を頂戴しております続きを読む
Salesforce 組織の設定および管理
コードでのロケールに依存しないメソッドの使用

コードでのロケールに依存しないメソッドの使用

データ形式は、ユーザーのロケール、新しい標準の採用、または標準ロケール形式の更新によって変更される可能性があります。ロケール形式が変更されたときにエラーを回避するには、標準メソッドを使用してこのデータをコードで処理します。コードでユーザーのロケールを使用してデータを書式設定する場合、その他すべての処理が完了した後に形式を適用します。

必要なエディション

使用可能なインターフェース: Salesforce Classic および Lightning Experience の両方
使用可能なエディション: すべてのエディション

Salesforce コードを検索するには、メタデータをダウンロードします。次に、Salesforce CLI などのコマンドラインインターフェースを使用します。

ユーザーのロケールによって、住所、通貨、日付、日時、名前、整数、時刻のデータ型の形式が決まります。週の開始曜日もユーザーのロケールに基づきます。

Oracle の Java Development Kit (JDK) ロケール形式から International Components for Unicode (ICU) ロケール形式に移行すると、一部のロケールでは通貨、日付、日時、整数、時刻形式が変更されます。

また、ロケール形式は最新の国際標準に合わせて定期的に更新されています。ユーザーは、現在のロケーションまたは設定に合わせてロケールを更新できます。

ロケール形式が変更されたためにカスタムコードで問題が発生しないように、次のガイドラインに従ってください。

  • 標準メソッドを使用してこれらの形式をコールします。たとえば、Apex で日付を処理する場合は、Date データ型を使用します。
  • コード内でこれらのデータ型を処理するときは、標準メソッドを使用してコンポーネントを抽出します。たとえば、Apex で日付形式から月を抽出する場合は、Date クラスの month() メソッドを使用します。同様に、整数値と通貨値は、書式設定する必要が生じるまで書式設定のない整数として処理します。
  • コードで値の追加処理を実行する場合は、ロケールに依存しない形式を使用します。たとえば、Apex では format(string dataFormat) または format(string dataFormat, string timezone) を使用します。
  • ユーザーが選択しているロケール形式へのデータの変換は、そのデータ処理の最後のステップにします。たとえば、Apex で将来の日付を計算する場合、計算後に Date クラスの format() メソッドを使用します。
  • Apex の format() メソッド (DateTime.format() など) は、コンテキストユーザーのロケールで値を返します。以降のコードで特定のロケール形式のデータが要求される場合は、形式を明示的に指定します。たとえば、Apex で 10:15 a のような形式の時刻を渡すには、DateTime.format('h:mm a') を使用します。この例は、文字列の引数 'h:mm a' を format 関数に渡すため、日時は、コンテキストユーザーのロケールに関係なく指定された形式に従って形式設定されます。
  • 区切りリストを作成する場合は、カンマが含まれる可能性のあるすべてのロケールデータを引用符で囲みます。

ユーザーが選択しているロケール形式で形式を返すコードの例をいくつか次に示します。

  • Apex: Date、DateTime、および Integer クラスの format() メソッド
  • Aura Lightning コンポーネント: $Locale グローバル変数
  • Lightning Web コンポーネントの Internationalization プロパティ
 
読み込み中
Salesforce Help | Article