Skip to main content

International Components for Unicode (ICU) Locale Formats


International Components for Unicode (ICU) Locale Formats

Salesforce has introduced a new international locale standard called International Components for Unicode (ICU) to enhance and eventually replace the previously used Java Development Kit (JDK) locales. This article explains the upcoming changes related to ICU locales in Salesforce, the impact on locale settings, and the steps you need to take to prepare for this required change.

With Quotes version 10.20, Zuora CPQ for Salesforce is fully compatible with the ICU (International Components for Unicode) locale enforcement by Salesforce, which is scheduled to be implemented in the Spring 24 release.

For more information, see Salesforce documentation pertaining to New International Locale Formats.

What is changing?

As of the Winter '20 release, Salesforce introduced ICU locales as an additional international locale standard. With the Spring '24 Salesforce release, all organizations will be required to use International Components for Unicode (ICU) locales, replacing the previously used JDK locales. This change aims to improve and standardize the formatting of elements such as dates, times, numbers, and currencies across Salesforce.

Impact on Locale settings

Locale settings in Salesforce determine the formats used for various elements, including dates, times, numbers, and currencies. By switching to ICU locales, organizations will experience a more consistent and accurate representation of these elements across different locales and languages. Salesforce provides a help document that outlines the differences between the current Oracle JDK locales and the new ICU locales to help you understand the changes in formatting.

Steps to prepare for the required change

To prepare for the transition to ICU locales in Salesforce, follow these steps:

  1. Test and Validate
    1. Enable the ICU Locale formats
    2. Complete testing
    3. Additional information
      1. Change User Locale
      2. Change Org specific Locale
      3. Check Locales in your org
  2. Understand the Impact on Custom Code and Installed Apps
  3. Communicate with users
  4. Plan the transition

Test and Validate

Create a testing environment to validate the behavior of your custom code, integrations, and any third-party apps with ICU locales enabled. Thoroughly test the functionality related to date, time, number, and currency formats to ensure they work as expected. Familiarize yourself with Salesforce's documentation on switching from JDK locales to ICU locales. Salesforce provides a document summarizing the necessary steps to enable ICU locales and disable JDK locales.

Enable the ICU Locale formats

When you enable the ICU locale formats, the appearance and behavior related to dates, times, and currencies can change. For this reason, we recommend that you test in a sandbox before activating the new formats in production.

  1. From Setup, in the Quick Find Box, enter Release Updates, and then select Release Updates.
  2. Form the Enable ICU Locale Formats release update, click Get Started.

  1. Once the testing is completed, click Done from the Release Updates under the Setup.

Refrain from clicking the "Done" button until the testing process is fully completed, as there will be no option to revert back once it is clicked.

  1. To verify the successful activation of ICU Locale, navigate to the "ARCHIVED" section of the Release Updates and recheck the ICU local box. If it appears as green, it indicates that ICU Locale has been enabled correctly.


Additional information

This section provides additional information on modifying the User Locale, adjusting the Locale specific to your Organization, and verifying Locales within your organization.

  1. From Setup, in the Quick Find Box, enter Users, and then select Users.
  2. Click Edit on the user profile.
  3. Scroll down to Locale Settings. The locale settings can be modified to various options such as English (USA, UK, Canada, etc.), French, Japanese, Chinese, and more.


  1. From Setup, in the Quick Find Box, enter Company Information, and then select Company Information.
  2. Click Edit to change the Default Locale.

Distinguishing between Company Locale and User Locale, it is primarily the impact of User Locale that needs to be assessed. At this time, it is advised not to modify the Company Information Locales.

To obtain a count of user locales:

  1. Open Developer console and run the below query in Query Editor. This will give a count of user locale wise as results.
    SELECT toLabel(LocaleSidKey) LocaleName, LocaleSidKey, Count(id) UserCount FROM User where IsActive=true GROUP BY LocaleSidKey

  1. An alternative approach is to query the User object using the LocaleSidKey field to obtain the desired information.

Understand the impact on custom code and installed apps

Take into account any custom code or installed apps that may rely on JDK locales. Make sure to test and verify the compatibility of your custom code and installed apps with ICU locales. If necessary, update your code or reach out to the app developers for any required updates.

Communicate with users

Inform your users and stakeholders about the upcoming change and its implications. Provide them with any necessary guidance or training on the updated locale formats and address any questions or concerns they may have.

Plan the transition

Develop a plan for transitioning your organization to ICU locales. Define a timeline for making the necessary changes and communicate it to your team. Consider any potential impact on ongoing projects or deployments and schedule the transition accordingly.

By following these steps, you can effectively prepare for the required switch from JDK locales to ICU locales in Salesforce and ensure a smooth transition with minimal disruption to your organization's processes and functionality.