Loading
Set Up and Maintain Your Salesforce Organization
Table of Contents
Select Filters

          No results
          No results
          Here are some search tips

          Check the spelling of your keywords.
          Use more general search terms.
          Select fewer filters to broaden your search.

          Search all of Salesforce Help
          Identify Changes to Your Locales with ICU

          Identify Changes to Your Locales with ICU

          To ensure that you understand the impact of migrating from Oracle’s Java Development Kit (JDK) locale formats to International Components for Unicode (ICU) locale formats, determine the specific locale format changes.

          Required Editions

          Available in: both Salesforce Classic and Lightning Experience
          Available in: all editions

          The changes when you migrate from JDK to ICU depend on the locales used in your org. If you haven’t done so already, determine the locales in use.

          For a complete list of the differences between JDK and ICU locale formats, see Differences Between JDK and ICU Locale Formats in Salesforce Help.

          The list of changes is long, and it’s unlikely that you use every one of those locales. Find the locales that your org uses by searching the Help page for the locale code. Then note the differences.

          Here are some important tips.

          • Not all locales change with ICU. In that case, the locale code isn’t listed on the Help page.
          • We provide a list of all possible formats, but not all formats are used in Salesforce. For example, almost all dates on standard Salesforce screens use the short date format, and the medium date format is rarely used, if ever.
          • Similarly, just because you see a format in the list doesn’t mean it’s available for your custom code. For example, the medium date format isn’t available in Apex.

          Let’s look at an example analysis. Assume that the results of the SOQL query show users with the bn_BD, en_US, es_NH, and it_IT locales.

          1. Go to Differences Between JDK and ICU Locale Formats in Salesforce Help.
          2. In the browser window, search for bn_BD, the locale code for the Bangla (Bangladesh) locale.

            The search shows no results, which means that there are no changes for that locale when migrating from JDK to ICU.

          3. Search for the next locale code, en_US, for the English (United States) locale.

            We find this section of the table.

            LOCALE NAME AND CODE FORMAT TYPE JDK FORMAT ICU FORMAT

            English (United States)

            en_US

            Date Time: Short 1/28/2008 4:30 PM 1/28/2008, 4:30 PM
            Date Time: Medium Jan 28, 2008 4:30:05 PM Jan 28, 2008, 4:30:05 PM
            Date Time: Long 1/28/2008 4:30:05 PM PST 1/28/2008, 4:30:05 PM PST
            Currency: Negative ($1,234,567.57) -$1,234,567.57

            Here we see that the datetime formats and the negative currency format changed. We can see that each datetime format has a comma after the year for the ICU format, but the JDK formats don’t have that comma. Also, the negative currency format changed from using parentheses to a negative sign.

          4. Next, search for the next locale code, es_HN, for the Spanish (Honduras) locale.

            We find this section of the table.

            LOCALE NAME AND CODE FORMAT TYPE JDK FORMAT ICU FORMAT

            Spanish (Honduras)

            es_HN

            Date Time: Short 01-28-2008 04:30 PM 28/1/2008 16:30
            Date Time: Medium 01-28-2008 04:30:05 PM 28 ene. 2008 16:30:05
            Date Time: Long 01-28-2008 04:30:05 PM PST 28/1/2008 16:30:05 GMT-8
            Date: Short 01-28-2008 28/1/2008
            Date: Medium 01-28-2008 28 ene. 2008
            Time 04:30 PM 16:30
            Currency: Positive L1,234,567.57 L 1,234,567.57
            Currency: Negative (L1,234,567.57) -L 1,234,567.57
            Accounting Currency: Positive L1,234,567.57 L 1,234,567.57
            Accounting Currency: Negative (L1,234,567.57) -L 1,234,567.57

            For this locale, date, datetime, time, and currency formats change with ICU. Notably, the month and the day switch positions in dates. Also, the time zone code changes in the long datetime format.

          5. Search for it_IT, the locale code for the Italian (Italy) locale.

            We find this section of the table.

            LOCALE NAME AND CODE FORMAT TYPE JDK FORMAT ICU FORMAT

            Italian (Italy)

            it_IT

            Date Time: Short 28/01/2008 16.30 28/01/2008, 16:30
            Date Time: Medium 28-gen-2008 16.30.05 28 gen 2008, 16:30:05
            Date Time: Long 28/01/2008 16.30.05 PST 28/01/2008, 16:30:05 GMT-8
            Date: Medium 28-gen-2008 28 gen 2008
            Time 16.30 16:30
            Currency: Positive € 1.234.567,57 1.234.567,57 €
            Currency: Negative -€ 1.234.567,57 -1.234.567,57 €
            Accounting Currency: Positive € 1.234.567,57 1.234.567,57 €
            Accounting Currency: Negative -€ 1.234.567,57 -1.234.567,57 €

            Similar to the en_HN locale, date, time, and currency formats change with ICU for this locale. Sometimes the changes are subtle, so review the table carefully. In this case, the ICU locale format includes a comma after the year in datetime formats. However, a colon (:) also replaces the period (.) in the time and datetime formats.

            In this example, we don’t include the bn_BD, or Bangla (Bangladesh), locale in our testing. Based on the results, we plan to test with the en_US, es_HN, and it_IT locales. And now we know which formats to test for each locale.

           
          Loading
          Salesforce Help | Article