Java/JDK 6/New Locales

Материал из Java эксперт
Перейти к: навигация, поиск

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>