コードでのロケールに依存しないメソッドの使用
データ形式は、ユーザーのロケール、新しい標準の採用、または標準ロケール形式の更新によって変更される可能性があります。ロケール形式が変更されたときにエラーを回避するには、標準メソッドを使用してこのデータをコードで処理します。コードでユーザーのロケールを使用してデータを書式設定する場合、その他すべての処理が完了した後に形式を適用します。
必要なエディション
| 使用可能なインターフェース: 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 プロパティ
この記事で問題は解決されましたか?
ご意見をお待ちしております。
