地区敏感SPI : 区域设置 « 本土化 « Java 教程

En
Java 教程
1. 语言基础
2. 数据类型
3. 操作符
4. 流程控制
5. 类定义
6. 开发相关
7. 反射
8. 正则表达式
9. 集合
10. 线
11. 文件
12. 泛型
13. 本土化
14. Swing
15. Swing事件
16. 二维图形
17. SWT
18. SWT 二维图形
19. 网络
20. 数据库
21. Hibernate
22. JPA
23. JSP
24. JSTL
25. Servlet
26. Web服务SOA
27. EJB3
28. Spring
29. PDF
30. 电子邮件
31. 基于J2ME
32. J2EE应用
33. XML
34. 设计模式
35. 日志
36. 安全
37. Apache工具
38. 蚂蚁编译
39. JUnit单元测试
Java
Java 教程 » 本土化 » 区域设置 
13. 1. 15. 地区敏感SPI

SPI stands for service provider interface.

You can write your own implementations for most locale sensitive classes in the java.text and java.util packages for locales that are not (yet) supported by the JRE.

with the new Java 6 feature, you can provide locale-sensitive implementations for the following entities.

  1. Language and country names for the java.util.Locale class
  2. Time zone names for the java.util.TimeZone class
  3. Symbols for the java.util.Currency class
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
13. 1. 区域设置
13. 1. 1. 区域设置
13. 1. 2. 列出所有可用的locales
13. 1. 3. 获得两个字母的国家代码
13. 1. 4. 获取本地化名称适于显示给用户
13. 1. 5. 设置默认设置命令行
13. 1. 6. 命令行设置语言代码
13. 1. 7. 设置语言和国家代码命令行
13. 1. 8. 更改默认的locale:Locale.setDefault ( ) :
13. 1. 9. 设置默认的locale ,预先确定的地区
13. 1. 10. 设置默认区域设置自定义locale
13. 1. 11. 日期格式设置
13. 1. 12. 获得国名表
13. 1. 13. 设置默认设置
13. 1. 14. Java 6新地区
13. 1. 15. 地区敏感SPI
13. 1. 16. 日本ImperialCalendar
13. 1. 17. 设置常数
13. 1. 18. 资源基础上设置名称
13. 1. 19. 显示国家默认区域设置
13. 1. 20. 为默认的locale获得ISO3语言
13. 1. 21. 为默认的locale获取显示名称
13. 1. 22. 获取显示默认区域设置
13. 1. 23. 设置区域
www.java2java.com | Contact Us
Copyright 2010 - 2030 Java Source and Support. All rights reserved.
All other trademarks are property of their respective owners.