Java I18N – Formatting Date and Time

Java Internationalization – Formatting Date and Time ”; Previous Next DateFormat class provides various formats to format the date and time together. DateFormat.getDateTimeInstance() method is to be used. See the example below. Example In following example we”ll show how to use different formats to format date and time. import java.text.DateFormat; import java.util.Date; public class I18NTester { public static void main(String[] args) { DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.DEFAULT, DateFormat.DEFAULT); System.out.println(dateFormat.format(new Date())); dateFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT); System.out.println(dateFormat.format(new Date())); dateFormat = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM); System.out.println(dateFormat.format(new Date())); dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG); System.out.println(dateFormat.format(new Date())); dateFormat = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL); System.out.println(dateFormat.format(new Date())); } } Output It will print the following result. Jun 7, 2024, 2:34:35 PM 6/7/24, 2:34 PM Jun 7, 2024, 2:34:35 PM June 7, 2024 at 2:34:35 PM IST Friday, June 7, 2024 at 2:34:35 PM India Standard Time Print Page Previous Next Advertisements ”;

Java I18N – Formatting Date

Java Internationalization – Locale specific Formatting Date ”; Previous Next Locale can be used to create locale specific formatting over a pattern in SimpleDateFormat class. See the following example of using locale specific SimpleDateFormat class. Example import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; public class I18NTester { public static void main(String[] args) throws ParseException { Locale locale = new Locale(“da”, “DK”); String pattern = “EEEEE MMMMM yyyy”; SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern); Date date = new Date(); System.out.println(date); System.out.println(simpleDateFormat.format(date)); simpleDateFormat = new SimpleDateFormat(pattern,locale); System.out.println(simpleDateFormat.format(date)); } } Output It will print the following result. Fri Jun 07 15:02:27 IST 2024 Friday June 2024 fredag juni 2024 Print Page Previous Next Advertisements ”;

Java I18N – Format Percentages

Java Internationalization – Format Percentages ”; Previous Next Example In this example, we”re formatting numbers in percentage format. import java.text.NumberFormat; import java.util.Locale; public class I18NTester { public static void main(String[] args) { Locale enLocale = new Locale(“en”, “US”); NumberFormat numberFormat = NumberFormat.getPercentInstance(enLocale); System.out.println(numberFormat.format(0.76)); } } Output It will print the following result. 76% Print Page Previous Next Advertisements ”;

Java I18N – Display Language

Java Internationalization – Locale Language ”; Previous Next Example In this example, we”ll get display language per locale passed as an argument. import java.util.Locale; public class I18NTester { public static void main(String[] args) { Locale defaultLocale = Locale.getDefault(); Locale enLocale = new Locale(“en”, “US”); Locale frLocale = new Locale(“fr”, “FR”); Locale esLocale = new Locale(“es”, “ES”); System.out.println(defaultLocale.getDisplayLanguage(enLocale)); System.out.println(defaultLocale.getDisplayLanguage(frLocale)); System.out.println(defaultLocale.getDisplayLanguage(esLocale)); } } Output It will print the following result. English anglais inglés Print Page Previous Next Advertisements ”;

Java I18N – ResourceBundle Class

Java Internationalization – ResourceBundle Class ”; Previous Next ResourceBundle class is used to store text and objects which are locale sensitive. Generally we use property files to store locale specific text and then represent them using ResourceBundle object. Following are the steps to use locale specific properties file in a java based application. Step 1: Create Properties Files Suppose we need properties file for English locale. Then create a properties file name XXX_en_US.properties where XXX is the name of the file and en_US represents the locale for English(US). Messages_en_US.properties message=Welcome to TutorialsPoint.COM! Let”s now create properties file for French locale. Then create a properties file name XXX_fr_FR.properties where XXX is the name of the file and fr_FR represents the locale for French(France). Messages_fr_FR.properties message=Bienvenue sur TutorialsPoint.COM! Here you can figure out that the key is same but the value is locale specific in both the properties file. Step 2: Create ResourceBundle Object Create ResourceBundle object with properties file name and locale using following syntax. ResourceBundle bundle = ResourceBundle.getBundle(“Messages”, Locale.US); Step 3: Get the value from ResourceBundle Object Get the value from ResourceBundle object by passing the key. String value = bundle.getString(“message”); Example Following example illustrate the use of ResourceBundle objects to display locale specific values from properties files. import java.util.Locale; import java.util.ResourceBundle; public class I18NTester { public static void main(String[] args) { ResourceBundle bundle = ResourceBundle.getBundle(“Messages”, Locale.US); System.out.println(“Message in “+Locale.US +”: “+bundle.getString(“message”)); bundle = ResourceBundle.getBundle(“Messages”, Locale.FRANCE); System.out.println(“Message in “+Locale.FRANCE +”: “+bundle.getString(“message”)); } } Output It will print the following result. Message in en_US: Welcome to TutorialsPoint.COM! Message in fr_FR: Bienvenue sur TutorialsPoint.COM! Notes for Naming Conventions Following are the naming conventions for the properties file. For properties file mapped to default locale, no prefix is mandatory. message_en_US.properties is equivalent to message.properties. For properties file mapped to locale, prefix can be attached in two ways. message_fr.properties is equivalent to message_fr_FR.properties. Print Page Previous Next Advertisements ”;

Java I18N – Date Format Patterns

Java Internationalization – Date Format Patterns ”; Previous Next Followings is the use of characters in date formatting patterns. Sr.No. Class & Description 1 G To display Era. 2 y To display Year. Valid values yy, yyyy. 3 M To display Month. Valid values MM, MMM or MMMMM. 4 d To display day of month. Valid values d, dd. 5 h To display hour of day (1-12 AM/PM). Valid value hh. 6 H To display hour of day (0-23). Valid value HH. 7 m To display minute of hour (0-59). Valid value mm. 8 s To display second of minute (0-59). Valid value ss. 9 S To display milliseconds of minute (0-999). Valid value SSS. 10 E To display Day in week (e.g Monday, Tuesday etc.) 11 D To display Day in year (1-366). 12 F To display Day of week in month (e.g. 1st Thursday of December). 13 w To display Week in year (1-53). 14 W To display Week in month (0-5) 15 a To display AM / PM 16 k To display Hour in day (1-24). 17 K To display Hour in day, AM / PM (0-11). 18 z To display Time Zone. Example In this example, we”re formatting dates based on different patterns. import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class I18NTester { public static void main(String[] args) throws ParseException { String pattern = “dd-MM-yy”; SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern); Date date = new Date(); System.out.println(simpleDateFormat.format(date)); pattern = “MM-dd-yyyy”; simpleDateFormat = new SimpleDateFormat(pattern); System.out.println(simpleDateFormat.format(date)); pattern = “yyyy-MM-dd HH:mm:ss”; simpleDateFormat = new SimpleDateFormat(pattern); System.out.println(simpleDateFormat.format(date)); pattern = “EEEEE MMMMM yyyy HH:mm:ss.SSSZ”; simpleDateFormat = new SimpleDateFormat(pattern); System.out.println(simpleDateFormat.format(date)); } } Output It will print the following result. 07-06-24 06-07-2024 2024-06-07 16:04:40 Friday June 2024 16:04:40.866+0530 Print Page Previous Next Advertisements ”;

Java Java – DateFormat Class

Java Internationalization – DateFormat Class ”; Previous Next java.text.DateFormat class formats dates as per the locale. As different coutries use different formats to display dates. This class is extremely useful in dealing with dates in Internationalization of application. Following example show how to create and use DateFormat Class. Example import java.text.DateFormat; import java.util.Date; import java.util.Locale; public class I18NTester { public static void main(String[] args) { Locale locale = new Locale(“da”,”DK”); DateFormat dateFormat = DateFormat.getDateInstance(); System.out.println(dateFormat.format(new Date())); dateFormat = DateFormat.getDateInstance(DateFormat.DEFAULT, locale); System.out.println(dateFormat.format(new Date())); } } Output It will print the following result. Nov 29, 2017 29-11-2017 Print Page Previous Next Advertisements ”;

Java I18N – Discussion

Discuss Java Internationalization ”; Previous Next Internationalization or I18N refers to the capablity of an Applicatyion to be able to server users in multiple and different languages. Java has in-built support for Internationalization. Java also provides formating of numbers, currecies and adjustment of date and time accordingly. Print Page Previous Next Advertisements ”;

Java I18N – Quick Guide

Java Internationalization – Quick Guide ”; Previous Next Java Internationalization – Overview Internationalization or I18N refers to the capability of an Application to be able to serve users in multiple and different languages. Java has in-built support for Internationalization. Java also provides formatting of numbers, currencies and adjustment of date and time accordingly. Java Internationalization helps to make a java application handle different languages, number formats, currencies, region specific time formatting. Localization Localization or L10N is the adaptability of an application that is how an application adapts itself with a specific language, number formats, date and time settings etc. A java application should be internationalized in order to be able to localize itself. Culturally Dependent Information Following information items often varies with different time zones or cultures. Messages Date Time Number Currency Measurements Phone Numbers Postal Addresses GUI labels Internationalization Classes Java has a set of built-in classes which help in internationalization of an application. These classes are following: Sr.No. Class & Description 1 Locale Represents a language along with country/region. 2 ResourceBundle Contains localized text or objects. 3 NumberFormat Use to format numbers/currencies as per the locale. 4 DecimalFormat Use to format numbers as per customized format and as per locale. 5 DateFormat Use to format dates as per locale. 6 SimpleDateFormat Use to format dates as per customized format and as per locale. Java Internationalization – Environment Setup In this chapter, we will discuss on the different aspects of setting up a congenial environment for Java. Local Environment Setup If you are still willing to set up your environment for Java programming language, then this section guides you on how to download and set up Java on your machine. Following are the steps to set up the environment. Java SE is freely available from the link Download Java. You can download a version based on your operating system. Follow the instructions to download Java and run the .exe to install Java on your machine. Once you installed Java on your machine, you will need to set environment variables to point to correct installation directories − Setting Up the Path for Windows Assuming you have installed Java in c:Program Filesjavajdk directory − Right-click on ”My Computer” and select ”Properties”. Click the ”Environment variables” button under the ”Advanced” tab. Now, alter the ”Path” variable so that it also contains the path to the Java executable. Example, if the path is currently set to ”C:WINDOWSSYSTEM32”, then change your path to read ”C:WINDOWSSYSTEM32;c:Program Filesjavajdkbin”. Setting Up the Path for Linux, UNIX, Solaris, FreeBSD Environment variable PATH should be set to point to where the Java binaries have been installed. Refer to your shell documentation, if you have trouble doing this. Example, if you use bash as your shell, then you would add the following line to the end of your ”.bashrc: export PATH = /path/to/java:$PATH” Popular Java Editors To write your Java programs, you will need a text editor. There are even more sophisticated IDEs available in the market. But for now, you can consider one of the following − Notepad − On Windows machine, you can use any simple text editor like Notepad (Recommended for this tutorial), TextPad. Netbeans − A Java IDE that is open-source and free which can be downloaded from https://www.netbeans.org/index.html. Eclipse − A Java IDE developed by the eclipse open-source community and can be downloaded from https://www.eclipse.org/. What is Next? Next chapter will teach you how to write and run your first Java program and some of the important basic syntaxes in Java needed for developing applications. Java Internationalization – Locale Class A Locale object represents a specific geographical/political/cultural region. Any operation requiring a Locale to perform its task is called locale-sensitive operation and uses the Locale to master information relative to the user. For example, displaying a number is a locale-sensitive operation. The number should be formatted as per the customs and conventions of the user”s native country, region, or culture. Locale Contents A Locale object contains the following: Language – ISO 639 alpha-2 or alpha-3 language code, or registered language subtags up to 8 alpha letters. alpha-2 code must be used if both alpha-2 and alpha-3 code are present. The language field is case insensitive, but Locale always canonicalizes to lower case. Script – ISO 15924 alpha-4 script code. The script field is case insensitive, but Locale always canonicalizes to title case. Country (region) – ISO 3166 alpha-2 country code or UN M.49 numeric-3 area code. The country field is case insensitive, but Locale always canonicalizes to upper case. Variant – Any arbitrary value used to indicate a variation of a Locale. Where there are two or more variant values each indicating its own semantics, these values should be ordered by importance, with most important first, separated by underscore(”_”). The variant field is case sensitive. Extensions – A map from single character keys to string values, indicating extensions apart from language identification. The extensions in Locale implement the semantics and syntax of BCP 47 extension subtags and private use subtags. The extensions are case insensitive, but Locale canonicalizes all extension keys and values to lower case. Java Internationalization – Example – Locale Details In this example, we”ll get default locale and print its details. Then create a locale for “fr” and print its details. Example import java.util.Locale; public class I18NTester { public static void main(String[] args) { Locale locale =Locale.getDefault(); System.out.println(“Default Locale Properties:n”); System.out.println(locale.getDisplayCountry()); System.out.println(locale.getDisplayLanguage()); System.out.println(locale.getDisplayName()); System.out.println(locale.getISO3Country()); System.out.println(locale.getISO3Language()); System.out.println(locale.getLanguage()); System.out.println(locale.getCountry()); Locale frenchLocale = new Locale(“fr”,”fr”); System.out.println(“nfr Locale Properties:n”); System.out.println(frenchLocale.getDisplayCountry()); System.out.println(frenchLocale.getDisplayLanguage()); System.out.println(frenchLocale.getDisplayName()); System.out.println(frenchLocale.getISO3Country()); System.out.println(frenchLocale.getISO3Language()); System.out.println(frenchLocale.getLanguage()); System.out.println(frenchLocale.getCountry()); } } Output It will print the following result. Default Locale Properties: United States English English (United States) USA eng en US fr Locale Properties: France French French (France) FRA fra fr FR Java Internationalization – Example – Display Language In this example, we”ll get display language per locale passed as an argument. Example import java.util.Locale; public class I18NTester { public static void main(String[] args) { Locale defaultLocale = Locale.getDefault(); Locale enLocale = new Locale(“en”, “US”);

Java I18N – Useful Resources

Java Internationalization – Useful Resources ”; Previous Next The following resources contain additional information on Java. Please use them to get more in-depth knowledge on this topic. Useful Links on Java The JavaTM Tutorials − The Java Tutorials are practical guides for programmers who want to use the Java programming language to create applications. JavaTM 2 SDK, Standard Edition − Official site for JavaTM 2 SDK, Standard Edition Free Java Download − Download Java for your desktop computer now! Sun Developer Network − Sun Microsystem”s official website listing down all the API documentation, latest Java Technologies, Books and other resource. Useful Books on Java To enlist your site on this page, please drop an email to [email protected] Print Page Previous Next Advertisements ”;