---
schema_version: "1"
id: 08e226952f203243706bb4c61b618f0644f11521ec3f8124993ab5bc2523c6f3
title: Identify Changes to Your Locales with ICU
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/xcloud/264-0-0/admin_locales_identify_icu_changes.md
canonical_url: https://help.salesforce.com/s/articleView?id=xcloud.admin_locales_identify_icu_changes.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: ce33c868cf9f273c0b6b46f7d732b08a512d3b92c1348f073d003befdd945523
description: 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.
products:
  - Salesforce Platform
  - Cross Cloud
release: "264"
---
# 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

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small edition"><colgroup><col></colgroup><tbody><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;">Available in: both Salesforce Classic and Lightning Experience</td></tr><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;">Available in: all editions</td></tr></tbody></table>

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](https://help.salesforce.com/s/articleView?id=xcloud.admin_locales_determine_use.htm&release=264.0.0&type=5 "To identify the locales used in your org, you can use an SQQL query, a report, or both. When locale formats change, your adoption effort depends on the locales used in your org. For example, when you migrate from Oracle’s Java Development Kit (JDK) locale formats to International Components for Unicode (ICU) locale formats, or when existing locale formats change.").

For a complete list of the differences between JDK and ICU locale formats, see [Differences Between JDK and ICU Locale Formats](https://help.salesforce.com/s/articleView?id=xcloud.icu_migration_format_changes.htm&release=264.0.0&type=5 "Here are all the differences between Oracle’s Java Development Kit (JDK) locale formats and the International Components for Unicode (ICU) locale formats. The changes are listed by locale or platform-only language. By default, orgs created before Winter ’20 use the locale formats provided by Oracle’s JDK.") 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](https://help.salesforce.com/s/articleView?id=xcloud.icu_migration_format_changes.htm&release=264.0.0&type=5 "Here are all the differences between Oracle’s Java Development Kit (JDK) locale formats and the International Components for Unicode (ICU) locale formats. The changes are listed by locale or platform-only language. By default, orgs created before Winter ’20 use the locale formats provided by Oracle’s JDK.") 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.
    
    <table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
            <colgroup>
              <col style="width:15.789473684210526%">
              <col style="width:21.052631578947366%">
              <col style="width:31.57894736842105%">
              <col style="width:31.57894736842105%">
            </colgroup>
            <thead class="slds-text-title_caps ">
              <tr class="">
                <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d43268e153">LOCALE NAME AND CODE</th>
                <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d43268e156">FORMAT TYPE</th>
                <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d43268e159">JDK FORMAT</th>
                <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d43268e162">ICU FORMAT</th>
              </tr>
            </thead>
            <tbody>
              <tr class="">
                <td data-label="LOCALE NAME AND CODE" class="slds-cell-wrap" rowspan="4" style="vertical-align:top;" headers="d43268e153 ">
                  <p>English (United States)</p>
                  <p style="margin-bottom:0;">en_US</p>
                </td>

                <td data-label="FORMAT TYPE" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e156 ">Date Time: Short</td>

                <td data-label="JDK FORMAT" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e159 ">1/28/2008 4:30 PM</td>

                <td data-label="ICU FORMAT" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e162 ">1/28/2008, 4:30 PM</td>

              </tr>
              <tr class="">
                <td data-label="FORMAT TYPE" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e156 ">Date Time: Medium</td>

                <td data-label="JDK FORMAT" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e159 ">Jan 28, 2008 4:30:05 PM</td>

                <td data-label="ICU FORMAT" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e162 ">Jan 28, 2008, 4:30:05 PM</td>

              </tr>
              <tr class="">
                <td data-label="FORMAT TYPE" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e156 ">Date Time: Long</td>

                <td data-label="JDK FORMAT" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e159 ">1/28/2008 4:30:05 PM PST</td>

                <td data-label="ICU FORMAT" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e162 ">1/28/2008, 4:30:05 PM PST</td>

              </tr>
              <tr class="">
                <td data-label="FORMAT TYPE" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e156 ">Currency: Negative</td>

                <td data-label="JDK FORMAT" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e159 ">($1,234,567.57)</td>

                <td data-label="ICU FORMAT" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e162 ">-$1,234,567.57</td>

              </tr>
            </tbody>
          </table>
    
    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.
    
    <table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
            <colgroup>
              <col style="width:15.789473684210526%">
              <col style="width:21.052631578947366%">
              <col style="width:31.57894736842105%">
              <col style="width:31.57894736842105%">
            </colgroup>
            <thead class="slds-text-title_caps ">
              <tr class="">
                <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d43268e260">LOCALE NAME AND CODE</th>
                <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d43268e263">FORMAT TYPE</th>
                <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d43268e266">JDK FORMAT</th>
                <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d43268e269">ICU FORMAT</th>
              </tr>
            </thead>
            <tbody>
              <tr class="">
                <td data-label="LOCALE NAME AND CODE" class="slds-cell-wrap" rowspan="10" style="vertical-align:top;" headers="d43268e260 ">
                  <p>Spanish (Honduras)</p>
                  <p style="margin-bottom:0;">es_HN</p>
                </td>

                <td data-label="FORMAT TYPE" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e263 ">Date Time: Short</td>

                <td data-label="JDK FORMAT" xml:lang="es-hn" lang="es-hn" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e266 ">01-28-2008 04:30 PM</td>

                <td data-label="ICU FORMAT" xml:lang="es-hn" lang="es-hn" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e269 ">28/1/2008 16:30</td>

              </tr>
              <tr class="">
                <td data-label="FORMAT TYPE" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e263 ">Date Time: Medium</td>

                <td data-label="JDK FORMAT" xml:lang="es-hn" lang="es-hn" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e266 ">01-28-2008 04:30:05 PM</td>

                <td data-label="ICU FORMAT" xml:lang="es-hn" lang="es-hn" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e269 ">28 ene. 2008 16:30:05</td>

              </tr>
              <tr class="">
                <td data-label="FORMAT TYPE" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e263 ">Date Time: Long</td>

                <td data-label="JDK FORMAT" xml:lang="es-hn" lang="es-hn" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e266 ">01-28-2008 04:30:05 PM PST</td>

                <td data-label="ICU FORMAT" xml:lang="es-hn" lang="es-hn" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e269 ">28/1/2008 16:30:05 GMT-8</td>

              </tr>
              <tr class="">
                <td data-label="FORMAT TYPE" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e263 ">Date: Short</td>

                <td data-label="JDK FORMAT" xml:lang="es-hn" lang="es-hn" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e266 ">01-28-2008</td>

                <td data-label="ICU FORMAT" xml:lang="es-hn" lang="es-hn" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e269 ">28/1/2008</td>

              </tr>
              <tr class="">
                <td data-label="FORMAT TYPE" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e263 ">Date: Medium</td>

                <td data-label="JDK FORMAT" xml:lang="es-hn" lang="es-hn" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e266 ">01-28-2008</td>

                <td data-label="ICU FORMAT" xml:lang="es-hn" lang="es-hn" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e269 ">28 ene. 2008</td>

              </tr>
              <tr class="">
                <td data-label="FORMAT TYPE" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e263 ">Time</td>

                <td data-label="JDK FORMAT" xml:lang="es-hn" lang="es-hn" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e266 ">04:30 PM</td>

                <td data-label="ICU FORMAT" xml:lang="es-hn" lang="es-hn" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e269 ">16:30</td>

              </tr>
              <tr class="">
                <td data-label="FORMAT TYPE" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e263 ">Currency: Positive</td>

                <td data-label="JDK FORMAT" xml:lang="es-hn" lang="es-hn" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e266 ">L1,234,567.57</td>

                <td data-label="ICU FORMAT" xml:lang="es-hn" lang="es-hn" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e269 ">L&nbsp;1,234,567.57</td>

              </tr>
              <tr class="">
                <td data-label="FORMAT TYPE" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e263 ">Currency: Negative</td>

                <td data-label="JDK FORMAT" xml:lang="es-hn" lang="es-hn" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e266 ">(L1,234,567.57)</td>

                <td data-label="ICU FORMAT" xml:lang="es-hn" lang="es-hn" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e269 ">-L&nbsp;1,234,567.57</td>

              </tr>
              <tr class="">
                <td data-label="FORMAT TYPE" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e263 ">Accounting Currency: Positive</td>

                <td data-label="JDK FORMAT" xml:lang="es-hn" lang="es-hn" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e266 ">L1,234,567.57</td>

                <td data-label="ICU FORMAT" xml:lang="es-hn" lang="es-hn" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e269 ">L&nbsp;1,234,567.57</td>

              </tr>
              <tr class="">
                <td data-label="FORMAT TYPE" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e263 ">Accounting Currency: Negative</td>

                <td data-label="JDK FORMAT" xml:lang="es-hn" lang="es-hn" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e266 ">(L1,234,567.57)</td>

                <td data-label="ICU FORMAT" xml:lang="es-hn" lang="es-hn" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e269 ">-L&nbsp;1,234,567.57</td>

              </tr>
            </tbody>
          </table>
    
    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.
    
    <table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
            <colgroup>
              <col style="width:15.789473684210526%">
              <col style="width:21.052631578947366%">
              <col style="width:31.57894736842105%">
              <col style="width:31.57894736842105%">
            </colgroup>
            <thead class="slds-text-title_caps ">
              <tr class="">
                <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d43268e440">LOCALE NAME AND CODE</th>
                <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d43268e443">FORMAT TYPE</th>
                <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d43268e446">JDK FORMAT</th>
                <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d43268e449">ICU FORMAT</th>
              </tr>
            </thead>
            <tbody>
              <tr class="">
                <td data-label="LOCALE NAME AND CODE" class="slds-cell-wrap" rowspan="9" style="vertical-align:top;" headers="d43268e440 ">
                  <p>Italian (Italy)</p>
                  <p style="margin-bottom:0;">it_IT</p>
                </td>

                <td data-label="FORMAT TYPE" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e443 ">Date Time: Short</td>

                <td data-label="JDK FORMAT" xml:lang="it-it" lang="it-it" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e446 ">28/01/2008 16.30</td>

                <td data-label="ICU FORMAT" xml:lang="it-it" lang="it-it" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e449 ">28/01/2008, 16:30</td>

              </tr>
              <tr class="">
                <td data-label="FORMAT TYPE" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e443 ">Date Time: Medium</td>

                <td data-label="JDK FORMAT" xml:lang="it-it" lang="it-it" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e446 ">28-gen-2008 16.30.05</td>

                <td data-label="ICU FORMAT" xml:lang="it-it" lang="it-it" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e449 ">28 gen 2008, 16:30:05</td>

              </tr>
              <tr class="">
                <td data-label="FORMAT TYPE" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e443 ">Date Time: Long</td>

                <td data-label="JDK FORMAT" xml:lang="it-it" lang="it-it" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e446 ">28/01/2008 16.30.05 PST</td>

                <td data-label="ICU FORMAT" xml:lang="it-it" lang="it-it" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e449 ">28/01/2008, 16:30:05 GMT-8</td>

              </tr>
              <tr class="">
                <td data-label="FORMAT TYPE" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e443 ">Date: Medium</td>

                <td data-label="JDK FORMAT" xml:lang="it-it" lang="it-it" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e446 ">28-gen-2008</td>

                <td data-label="ICU FORMAT" xml:lang="it-it" lang="it-it" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e449 ">28 gen 2008</td>

              </tr>
              <tr class="">
                <td data-label="FORMAT TYPE" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e443 ">Time</td>

                <td data-label="JDK FORMAT" xml:lang="it-it" lang="it-it" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e446 ">16.30</td>

                <td data-label="ICU FORMAT" xml:lang="it-it" lang="it-it" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e449 ">16:30</td>

              </tr>
              <tr class="">
                <td data-label="FORMAT TYPE" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e443 ">Currency: Positive</td>

                <td data-label="JDK FORMAT" xml:lang="it-it" lang="it-it" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e446 ">€ 1.234.567,57</td>

                <td data-label="ICU FORMAT" xml:lang="it-it" lang="it-it" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e449 ">1.234.567,57&nbsp;€</td>

              </tr>
              <tr class="">
                <td data-label="FORMAT TYPE" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e443 ">Currency: Negative</td>

                <td data-label="JDK FORMAT" xml:lang="it-it" lang="it-it" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e446 ">-€ 1.234.567,57</td>

                <td data-label="ICU FORMAT" xml:lang="it-it" lang="it-it" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e449 ">-1.234.567,57&nbsp;€</td>

              </tr>
              <tr class="">
                <td data-label="FORMAT TYPE" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e443 ">Accounting Currency: Positive</td>

                <td data-label="JDK FORMAT" xml:lang="it-it" lang="it-it" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e446 ">€ 1.234.567,57</td>

                <td data-label="ICU FORMAT" xml:lang="it-it" lang="it-it" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e449 ">1.234.567,57&nbsp;€</td>

              </tr>
              <tr class="">
                <td data-label="FORMAT TYPE" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e443 ">Accounting Currency: Negative</td>

                <td data-label="JDK FORMAT" xml:lang="it-it" lang="it-it" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e446 ">-€ 1.234.567,57</td>

                <td data-label="ICU FORMAT" xml:lang="it-it" lang="it-it" class="slds-cell-wrap" style="vertical-align:top;" headers="d43268e449 ">-1.234.567,57&nbsp;€</td>

              </tr>
            </tbody>
          </table>
    
    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.

#### See Also

- [Adopt the ICU Locale Formats](https://help.salesforce.com/s/articleView?id=xcloud.icu_migration_how.htm&release=264.0.0&type=5 "The ICU locale format release update is available for all orgs. Review the high-level process to successfully migrate to the new International Components for Unicode (ICU) locale formats. Some of the formats differ from the ones provided by Oracle’s Java Development Kit (JDK). Understand how to determine the impact of changes on your org, and learn about the updates required to support the new formats.")