java开发中国际化
1 静态文本的国际化,就是比如页面中中文显示用户名就是用户名,用于显示就是 username。
其中静态文件命名遵循:基础名_语言简称_国家简称.properties
需要使用的类是
1)import java.util.Locale; //本地化
2)import java.util.ResourceBundle; //资源加载
对于如何查找语言简称、国家简称可以通过internate选项找到语言。如下图所示


例子如下:
新建两个properties文件存储对应的要国际化的值

msg_zh_CN.properties 文件内容如下

msg_en_US.properties 文件内容如下

测试代码如下
String baseName = "com.huitong.test.bundle.msg";
ResourceBundle bundle = ResourceBundle.getBundle(baseName, Locale.CHINA);
System.out.println(bundle.getString("username"));
2 动态内容的国际化:主要包含数字国际化、货币国际化、日期国际化
主要的类对象是:NumberFormat、SimpleDateFormat
2.1 货币国际化,代码如下
2.1.1)将数字货币格式化成字符串
Locale locale = Locale.CHINA;
double number = ;
//货币国际化
NumberFormat currencyInstance = NumberFormat.getCurrencyInstance(locale); String result = currencyInstance.format(number ); System.out.println(result);
2.1.2)将字符串格式化成数字,代码如下
Locale locale = Locale.CHINA;
String strNumber = "¥200.00";
//货币国际化
NumberFormat currencyInstance = NumberFormat.getCurrencyInstance(locale); Number result;
// String result = currencyInstance.format(dnumber ); try {
result = currencyInstance.parse(strNumber);
System.out.println(result.doubleValue());
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
2.2 数字国际化
将数字货币格式化成字符串
2.2.1)数字格式化成字符串
Locale locale = Locale.CHINA;
//数字国际化
NumberFormat numberInstance = NumberFormat.getNumberInstance(locale);
double num=2000000.15;
String strnum = numberInstance.format(num);
System.out.println(strnum);
结果:2,000,000.15
2.2.2)将字符串格式化成数字
Locale locale = Locale.CHINA;
//数字国际化
NumberFormat numberInstance = NumberFormat.getNumberInstance(locale);
// double num=2000000.15;
String strnum = "2,000,000.15";
try {
Number result = numberInstance.parse(strnum);
System.out.println(result.doubleValue());
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
结果:2000000.15
2.3 日期国际化有两种方法可以做
2.3.1)使用DateFormat,产生的格式是固定的,有DateFormat.FULL, DateFormat.LONG, DateFormat.MEDIUM, DateFormat.SHORT
int dateStyle = DateFormat.MEDIUM;
int timeStyle = DateFormat.FULL;
Locale aLocale = Locale.CHINA;
DateFormat dateTimeInstance = DateFormat.getDateTimeInstance(dateStyle , timeStyle , aLocale );
String result = dateTimeInstance.format(new Date());
System.out.println(result);
结果:2017-4-11 上午08时51分28秒 CST
2.3.2)使用SimpleDateFormat 进行格式化,可以产生指定格式的形式,比较有自主性
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(simpleDateFormat.format(new Date()));
结果:2017-04-11 08:55:20
其中可以使用的格式如下:
Letter Date or Time Component Presentation Examples GEra designator Text ADyYear Year 1996;96YWeek year Year 2009;09MMonth in year (context sensitive) Month July;Jul;07LMonth in year (standalone form) Month July;Jul;07wWeek in year Number 27WWeek in month Number 2DDay in year Number 189dDay in month Number 10FDay of week in month Number 2EDay name in week Text Tuesday;TueuDay number of week (1 = Monday, ..., 7 = Sunday) Number 1aAm/pm marker Text PMHHour in day (0-23) Number 0kHour in day (1-24) Number 24KHour in am/pm (0-11) Number 0hHour in am/pm (1-12) Number 12mMinute in hour Number 30sSecond in minute Number 55SMillisecond Number 978zTime zone General time zone Pacific Standard Time;PST;GMT-08:00ZTime zone RFC 822 time zone -0800XTime zone ISO 8601 time zone -08;-0800;-08:00
3 国际化标签
引入国际化标签:<%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
主要的5个标签
//设置本地化对象,为浏览器请求的locale
<fmt:setLocale value="${pageContext.request.locale }"/>
//设置工具类
<fmt:setBundle basename="com.huitong.i18n.msg" var="bund"/>
//获取工具类中的数据,key 就是 properties 文件中的key
<fmt:message bundle="${bund }" key="title" ></fmt:message>
<fmt:formatNumber pattern="0.00" value="100" ></fmt:formatNumber>
<fmt:formatDate pattern="yyyyMMdd" value="<%=new Date() %>"/>
java开发中国际化的更多相关文章
- paip.java 开发中web server的选择jboss resin tomcat比较..
paip.java 开发中web server的选择jboss resin tomcat比较.. 作者Attilax 艾龙, EMAIL:1466519819@qq.com 来源:attilax的专 ...
- Java开发中常见的危险信号(中)
本文来源于我在InfoQ中文站原创的文章,原文地址是:http://www.infoq.com/cn/news/2013/12/common-red-flags-in-java-1 Dustin Ma ...
- Java开发中文件读取方式总结
JAVA开发中,免不了要读文件操作,读取文件,首先就需要获取文件的路径. 路径分为绝对路径和相对路径. 在文件系统中,绝对路径都是以盘符开始的,例如C:\abc\1.txt. 什么是相对路径呢?相对路 ...
- java开发中遇到的问题及解决方法(持续更新)
摘自 http://blog.csdn.net/pony12/article/details/38456261 java开发中遇到的问题及解决方法(持续更新) 工作中,以C/C++开发为主,难免与其他 ...
- Java开发中常见的危险信号(上)
本文来源于我在InfoQ中文站原创的文章,原文地址是:http://www.infoq.com/cn/news/2013/12/common-red-flags-in-java-1 Dustin Ma ...
- 编写高质量代码:改善Java程序的151个建议(第一章:JAVA开发中通用的方法和准则)
编写高质量代码:改善Java程序的151个建议(第一章:JAVA开发中通用的方法和准则) 目录 建议1: 不要在常量和变量中出现易混淆的字母 建议2: 莫让常量蜕变成变量 建议3: 三元操作符的类型务 ...
- 完整java开发中JDBC连接数据库代码和步骤[申明:来源于网络]
完整java开发中JDBC连接数据库代码和步骤[申明:来源于网络] 地址:http://blog.csdn.net/qq_35101189/article/details/53729720?ref=m ...
- Java 开发中的对象拷贝
前言 在 Java 开发中,很多时候需要将两个属性基本相同的对象进行属性复制,比如 DO 转 VO等等. 本文主要介绍自己实现的简易拷贝工具类与 Spring 提供的属性拷贝的对比. Spring 提 ...
- [ 转载 ] Java开发中的23种设计模式详解(转)
Java开发中的23种设计模式详解(转) 设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类 ...
随机推荐
- java读写锁实现数据同步访问
锁机制最大的改进之一就是ReadWriteLock接口和它的唯一实现类ReentrantReadWriteLock.这个类有两个锁,一个是读操作锁,另一个是写操作锁.使用读操作锁时可以允许多个线程同时 ...
- 检查正则表达式的工具:Regex Match Tracer
Regex Match Tracer破解版下载 使用: 相关: 收藏几个好用的在线正则验证网
- linux下批量添加新用户
作为一个系统管理员,可能要经常的为机器添加用户,可能是在一台机器上添加很多用户,也有可能是在很多机器上要添加同一个用户. 基本上,批量添加用户有两种方式,一是用useradd + passwd命令配合 ...
- VB--"." 和 "!" ?
在做学生信息管理系统的时候,遇到了一条代码. txtName.Text = mrc!student_Name txtResult.Text = mrc!result 代码本身理解没有问题,给文本框添加 ...
- 从头開始写项目Makefile(十):make内嵌函数及make命令显示
[版权声明:转载请保留出处:blog.csdn.net/gentleliu.Mail:shallnew at 163 dot com] 这一节我们讲一下make的函数,在之前的章节已经讲到了几 ...
- java 中函数的参数传递详细介绍
java中函数的参数传递 总结: 1.将对象(对象的引用)作为参数传递时传递的是引用(相当于指针).也就是说函数内对参数所做的修改会影响原来的对象. 2.当将基本类型或基本类型的包装集作为参数传递时 ...
- java页面url传值中文编码&解码
URL参数中有中文值,传到服务端,在用request.getParameter()方法,得到的常常会是乱码. 这将涉及到字符解码操作,我们在应用中常常会用new String(fieldType.ge ...
- [Python爬虫] 之八:Selenium +phantomjs抓取微博数据
基本思路:在登录状态下,打开首页,利用高级搜索框输入需要查询的条件,点击搜索链接进行搜索.如果数据有多页,每页数据是20条件,读取页数 然后循环页数,对每页数据进行抓取数据. 在实践过程中发现一个问题 ...
- 关于listview,scrollview显示模糊边缘的设置
朋友们有时可能在开发中遇到这样的莫名其妙的问题,listview或scrollview滑动时上边和下边会出现两条模糊的边缘,有时会影响到我们app的视觉效果,我们怎么去掉这两条模糊的边缘呢?很简单,一 ...
- Java程序猿面试体会,还没找到工作的“猿猿们”看过来!
类似的话题,我大约在几个月前跟大家聊过. 这一次,我要依据这段时间的体会,再给大家整理一下. 今天,非常轻松地拿到了神州数码的offer. 尽管工资不是特别高,尽管非常多人一毕业就能进入这种公 ...