1.
locale类测试
package com.hbsi.demo;
import java.util.Locale;
publicclass Demo1 {
publicstaticvoid main(String[] args) {
Locale locale = Locale.getDefault();
System.out.println(locale.getLanguage()+"-"+locale.getCountry());
}
}
国际化登录界面编写(此jsp只编写了中文和英文两种配置文件)
<%@ page language="java"import="java.util.*"pageEncoding="UTF-8"%>
<!DOCTYPEHTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP '4.jsp' starting page</title>
</head>
<body>
<%
ResourceBundle rb = ResourceBundle.getBundle("com.hbsi.mypropertity.myproperties",request.getLocale());
%>
<form>
<%=rb.getString("username")%> : <inputtype="text"name="username"><br><br>
<%=rb.getString("password")%> : <inputtype="password"name="password"><br><br>
<inputtype="submit"value="<%=rb.getString("submit")%>">
<inputtype="reset"value="<%=rb.getString("reset")%>">
</form>
</body>
</html>
对应的标签编写的登录界面:案例一(setBundle标签):
<%@ page language="java"import="java.util.*"pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt"prefix="fmt" %>
<!DOCTYPEHTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP '4.jsp' starting page</title>
</head>
<fmt:setLocalevalue="en"/>
<fmt:setBundlebasename="com.hbsi.mypropertity.myproperties"/>
<body>
<form>
<fmt:messagekey="username"/> : <inputtype="text"name="username"><br><br>
<fmt:messagekey="password"/> : <inputtype="password"name="password"><br><br>
<inputtype="submit"value="<fmt:messagekey="submit"/>">
<inputtype="reset"value="<fmt:messagekey="reset"/>">
</form>
</body>
</html>
案列二(bundle标签):
<%@ page language="java"import="java.util.*"pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt"prefix="fmt" %>
<!DOCTYPEHTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP '4.jsp' starting page</title>
</head>
<fmt:bundlebasename="com.hbsi.mypropertity.myproperties">
<body>
<form>
<fmt:messagekey="username"/> : <inputtype="text"name="username"><br><br>
<fmt:messagekey="password"/> : <inputtype="password"name="password"><br><br>
<inputtype="submit"value="<fmt:messagekey="submit"/>">
<inputtype="reset"value="<fmt:messagekey="reset"/>">
</form>
</body>
</fmt:bundle>
</html>
2.
DateFormat类文件例子:
package com.hbsi.demo;
import java.text.DateFormat;
import java.text.ParseException;
import java.util.Date;
import java.util.Locale;
public class Demo2 {
public static void main(String[] args) throws ParseException {
Date date = new Date();
DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT,Locale.CHINA);
System.out.println(df.format(date));
System.out.println("--------------");
DateFormat df1 = DateFormat.getTimeInstance(DateFormat.MEDIUM,Locale.CHINA);
System.out.println(df1.format(date));
System.out.println("-------------");
DateFormat df2 = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.FULL,Locale.CHINA);
System.out.println(df2.format(date));
System.out.println("--------------");
DateFormat df3 = DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL,Locale.ENGLISH);
System.out.println(df3.format(date));
System.out.println("--------------");
String str = "12-11-23";
DateFormat df4 = DateFormat.getDateInstance(DateFormat.SHORT,Locale.CHINESE);
System.out.println(df4.parse(str));
System.out.println("--------------");
String str1 = "2012-10-25";
DateFormat df5 = DateFormat.getDateInstance(DateFormat.MEDIUM,Locale.CHINESE);
System.out.println(df5.parse(str1));
}
}
NumberFormat类文件
package com.hbsi.demo;
import java.text.NumberFormat;
import java.text.ParseException;
import java.util.Locale;
public class Demo3 {
public static void main(String[] args) throws ParseException {
int number = 120;
//测试同一数值在不同国家输出的货币形式,这里需要注意的是如果系统不存在该国家的货币形式会以乱码输出(¤120.00)
NumberFormat nf = NumberFormat.getCurrencyInstance(Locale.CHINA);
System.out.println(nf.format(number));
System.out.println("------------");
NumberFormat nf5 = NumberFormat.getCurrencyInstance(Locale.US);
System.out.println(nf5.format(number));
System.out.println("------------");
NumberFormat nf6 = NumberFormat.getCurrencyInstance(Locale.ENGLISH);
System.out.println(nf6.format(number));
System.out.println("------------");
//测试百分比的输出,百分比跟数值的输出格式基本相同,比如下面的例子结果都是60%
double number1 = 0.60;
NumberFormat nf1 = NumberFormat.getPercentInstance(Locale.CHINA);
System.out.println(nf1.format(number1));
System.out.println("------------");
NumberFormat nf2 = NumberFormat.getPercentInstance(Locale.US);
System.out.println(nf2.format(number1));
System.out.println("------------");
//下面的两个例子是测试字符串转不同国家的数值格式,这里你的字符串是哪个国家的格式你转换的时候就要指明当地语言(Locale)
String str = "¥120.00";
NumberFormat nf3 = NumberFormat.getCurrencyInstance(Locale.CHINA);
System.out.println(nf3.parse(str));
System.out.println("------------");
String str1 = "$100";
NumberFormat nf4 = NumberFormat.getCurrencyInstance(Locale.US);
System.out.println(nf4.parse(str1));
}
}
标签例子:
<%@ page language="java"import="java.util.*"pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt"prefix="fmt" %>
<!DOCTYPEHTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP '7.jsp' starting page</title>
</head>
<body>
<fmt:formatDatevalue="<%=new Date()%>" type="date"/><br>
<fmt:formatDatevalue="<%=new Date()%>" type="time"/><br>
<fmt:formatDatevalue="<%=new Date()%>" type="both"/><br>
<hr>
<fmt:parseDatevalue="2012-11-23"pattern="yyyy-MM-dd"/><br>
<fmt:parseDatevalue="2012-11-23"type="date"/>
<hr>
<fmt:formatNumbervalue="120"type="currency"pattern=".00元"/><br>
<fmt:formatNumbervalue="120"type="currency"pattern="$.0"/><br>
<hr>
<fmt:parseNumbervalue="120.00"type="number"/><br>
<fmt:parseNumbervalue="120.00元"type="number"/><br>
</body>
</html>
3.
MessageFormat类文件:
package com.hbsi.demo;
import java.text.MessageFormat;
import java.util.Date;
import java.util.Locale;
public class Demo4 {
public static void main(String[] args) {
String mes = "On {0}, a hurricance destroyed {1} houses and caused "
+ "{2} of damage.";
MessageFormat mf = new MessageFormat(mes,Locale.US);
Object[] parame = {new Date(),99,10000000};
System.out.println(mf.format(parame));
System.out.println("------------");
String mess = "At {0, time, short} on {0, date}, a hurricance destroyed{1} houses and caused {2, number, currency} of damage.";
MessageFormat mf1 = new MessageFormat(mess,Locale.CHINA);
Object[] parame1 = {new Date(),99,10000000};
System.out.println(mf1.format(parame1));
}
}
连接properties配置文件的类文件
package com.hbsi.demo;
import java.text.MessageFormat;
import java.util.Date;
import java.util.Locale;
import java.util.ResourceBundle;
public class Demo5 {
/**
* @param args
*/
public static void main(String[] args) {
//中文环境下
//这句的Locale.CHINA设置message的显示格式
ResourceBundle rb = ResourceBundle.getBundle("com.hbsi.mypropertity.myproperties",Locale.CHINA);
String message = rb.getString("message");
Object[] parame = {new Date(),99,1000000};
//这句的Locale.CHINA设置占位符的显示格式
MessageFormat mf = new MessageFormat(message,Locale.CHINA);
System.out.println(mf.format(parame));
System.out.println("------------");
//英文环境下
ResourceBundle rb1 = ResourceBundle.getBundle("com.hbsi.mypropertity.myproperties",Locale.US);
String message1 = rb1.getString("message");
Object[] parame1 = {new Date(),99,1000000};
MessageFormat mf1 = new MessageFormat(message1,Locale.US);
System.out.println(mf1.format(parame1));
}
}
对应的标签文件:
<%@ page language="java"import="java.util.*"pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt"prefix="fmt" %>
<!DOCTYPEHTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP '8.jsp' starting page</title>
</head>
<body>
<fmt:parseNumbervalue="99"type="number"var="num1"></fmt:parseNumber>
<fmt:parseNumbervalue="1000000"type="number"var="num2"></fmt:parseNumber>
<fmt:bundlebasename="com.hbsi.mypropertity.myproperties">
<fmt:messagekey="message">
<fmt:paramvalue="<%=new Date()%>"></fmt:param>
<fmt:paramvalue="${num1}"></fmt:param>
<fmt:paramvalue="${num2}"></fmt:param>
</fmt:message>
</fmt:bundle>
</body>
</html>