Java/JDK 6/New Locales
Содержание
Displaying Calendar Names
<source lang="java">
import java.util.Calendar; import java.util.Locale; import java.util.Map; public class DisplayNames {
public static void main(String args[]) { Calendar now = Calendar.getInstance(); // Locale locale = Locale.getDefault(); Locale locale = Locale.ITALIAN; Map<String, Integer> names = now.getDisplayNames(Calendar.DAY_OF_WEEK, Calendar.LONG, locale); System.out.println(names); String name = now.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.LONG, locale); System.out.printf("Today is a %s.%n", name); }
}
</source>
Japanese Imperial Calendar
<source lang="java">
import java.util.Calendar; import java.util.Locale; import java.util.Map; public class JapaneseCalendar {
public static void main(String args[]) { Locale locale = new Locale("ja", "JP", "JP"); Calendar now = Calendar.getInstance(locale); Map<String, Integer> names = now.getDisplayNames(Calendar.ERA, Calendar.LONG, locale); System.out.printf("%s%n", names); System.out.printf("It is year %tY of the current era%n", now); System.out.printf("The calendar class is: %s%n", now.getClass().getName()); }
}
</source>
Locale Sensitive Services SPI
<source lang="java">
java.text.BreakIterator java.text.Collator java.text.DateFormat java.text.NumberFormat java.text.DateFormatSymbols java.text.DecimalFormatSymbol
import java.text.DateFormat; import java.text.SimpleDateFormat; import java.text.spi.DateFormatProvider; import java.util.Locale; import java.text.DateFormat; import java.util.Date; import java.util.Locale; public class AntarcticaLocaleDemo {
public static void main(String [] args) { Date now = new Date(); DateFormat defaultFormat = DateFormat.getDateTimeInstance(); String defaultString = defaultFormat.format (now); System.out.println ("Default : " + defaultString); DateFormat antarcticaFormat = DateFormat.getDateTimeInstance ( DateFormat.FULL, DateFormat.FULL, new Locale ("en", "AQ")); String antarcticaString = antarcticaFormat.format (now); System.out.println ("Antarctica: " + antarcticaString); }
} class DateFormatProviderImpl extends DateFormatProvider {
private Locale antarctica = new Locale ("en", "AQ"); public Locale[] getAvailableLocales() { return new Locale [] {antarctica}; } public DateFormat getTimeInstance(int style, Locale locale) { if (locale.equals(antarctica)) { return new SimpleDateFormat("HH.mm.ss"); } return null; } public DateFormat getDateTimeInstance(int dateStyle, Locale locale) { if (locale.equals(antarctica)) { return new SimpleDateFormat("yyyy~MM~dd HH.mm.ss"); } return null; } public DateFormat getDateTimeInstance(int dateStyle, int timeStyle, Locale locale) { if (locale.equals(antarctica)) { return new SimpleDateFormat("yyyy~MM~dd HH.mm.ss"); } return null; } @Override public DateFormat getDateInstance(int style, Locale locale) { if (locale.equals(antarctica)) { return new SimpleDateFormat("yyyy~MM~dd HH.mm.ss"); } return null; }
} //Reference: //Java 6 New Features: A Tutorial //by Budi Kurniawan //Brainy Software Corp. 2006 //Chapter 4 - Networking //# ISBN-10: 0975212885 //# ISBN-13: 978-0975212882
</source>
New locales in Java 6
<source lang="java">
/* Language Country Locale Identifier Chinese (Simplified) Singapore zh_SG English Malta en_MT English Philippines en_PH English Singapore en_SG Greek Cyprus el_CY Indonesian Indonesia in_ID Japanese (Japanese calendar) Japan ja_JP_JP Malay Malaysia ms_MY Maltese Malta mt_MT Spanish US es_US
- /
import java.text.DateFormat; import java.util.Calendar; import java.util.Locale; import javax.swing.JOptionPane; public class JapaneseCalendar {
public static void main(String[] args) { Locale japanese = new Locale("ja", "JP", "JP"); Calendar cal = Calendar.getInstance(japanese); DateFormat df = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL, japanese); String str = df.format(cal.getTime()); JOptionPane.showMessageDialog(null, str); }
}
</source>