java locale怎么用,如何在Java中使用不受支持的Locale

您可以通过基于相应的服务提供者接口(SPI)创建扩展来将其他语言环境添加到Java运行时.

例如,如果要为Antigua和Barbuda(en_AG)指定短日期格式,可以按如下方式实现java.text.spi.DateFormatProvider SPI:

import java.text.DateFormat;

import java.text.SimpleDateFormat;

import java.text.spi.DateFormatProvider;

import java.util.Locale;

public class EnAgDateFormatProvider extends DateFormatProvider {

private static final Locale EN_AG_LOCALE = new Locale("en", "AG");

public DateFormat getDateInstance(int style, Locale locale) {

// if your extension supports multiple locales, you have to take the locale

// parameter into account as well

switch (style) {

case DateFormat.SHORT:

return new SimpleDateFormat("dd/MM/yy");

default:

// TODO implement other styles

return null;

}

}

public DateFormat getTimeInstance(int style, Locale locale) {

// TODO implement this method

return null;

}

public DateFormat getDateTimeInstance(int dateStyle, int timeStyle,

Locale locale) {

// TODO implement this method

return null;

}

public Locale[] getAvailableLocales() {

return new Locale[]{EN_AG_LOCALE};

}

}

这需要打包在JAR文件中,在JAR的META-INF / services目录中,您需要创建一个名为java.text.spi.DateFormatProvider的文件.该文件需要包含提供者的完全限定名称,在我的情况下:

EnAgDateFormatProvider

创建JAR后,需要将其放在JRE的extensions目录中.在我的Ubuntu机器上,这恰好是/usr/lib / jvm / java-8-oracle / jre / lib / ext /.

之后,您问题的代码段:

Locale loc = new Locale("en", "AG");

DateFormat df1 = DateFormat.getDateInstance(DateFormat.SHORT, loc);

System.out.println("Short format: " + df1.format(new Date()));

将打印出来:

Short format: 16/02/2017

参考文献:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值