`
Before_Morning
  • 浏览: 35348 次
文章分类
社区版块
存档分类
最新评论

资源国际化之格式的转换

阅读更多

一、DateFormat类(国际化日期)

DateFormat 类可以将一个日期/时间对象格式化为表示某个国家地区的日期/时间字符串

DateFormat 类除了可按国家地区格式化输出日期外,它还定义了一些用于描述日期/时间的显示模式的 int 型的常量,包括FULL, LONG, MEDIUM, DEFAULT, SHORT,

实例化DateFormat对象时,可以使用这些常量,控制日期/时间的显示长度

package com.jjyy.dataformat;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

import org.junit.Test;

public class DateFormatDemo {
	/**
	 * 将日期对象转换为字符串表示形式,此时根据地区语言环境不同,需要转成不同样式的字符串形式
	 */
	@Test
	public void test1(){
		Date date = new Date();
		DateFormat format = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL, Locale.CHINA);
		String dateStr = format.format(date);
		System.out.println(dateStr);
	}
	
	/**
	 * 将字符串形式的日期时间信息转换为Date对象
	 * @throws ParseException 
	 */
	@Test
	public void test2() throws ParseException{
		String dateStr = "2015年1月24日 星期五 上午11时56分39秒 CST";
		DateFormat format = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL, Locale.CHINA);
		Date date = format.parse(dateStr);
		System.out.println(date.toLocaleString());
	}
	
	/**
	 * 9月~~10日##2015年**12时%20分%10秒
	 * @throws ParseException 
	 */
	@Test
	public void test3() throws ParseException{
		String dateStr = "09月~~10日##2015年**12时%20分%10秒";
		SimpleDateFormat dateFormat = new SimpleDateFormat("MM月~~dd日##yyyy年**HH时%mm分%ss秒");
		Date date = dateFormat.parse(dateStr);
		System.out.println(date.toLocaleString());
	}
	
	@Test
	public void test4(){
		Date date = new Date();
		SimpleDateFormat dateFormat = new SimpleDateFormat("MM月~~dd日##yyyy年**HH时%mm分%ss秒");
		String str = dateFormat.format(date);
		System.out.println(str);
	}
}

二、NumberFormat类

实例化NumberFormat类时,可以使用locale对象作为参数,也可以不使用

package com.jjyy.NumberFormat;

import java.text.NumberFormat;
import java.text.ParseException;
import java.util.Locale;

import org.junit.Test;

public class NumberFormatDemo {
	/**
	 * 将数字表示成字符串形式,可以根据不同的地区语言环境转换为不同的字符串
	 */
	@Test
	public void test1(){
		double money = 1000000.00;
		NumberFormat format = NumberFormat.getCurrencyInstance(Locale.US);
		String moneyStr = format.format(money);
		System.out.println(moneyStr);
	}
	/**
	 * $1,000,000.00
	 * @throws ParseException 
	 */
	@Test
	public void test2() throws ParseException{
		String moneyStr = "$1,000,000.00";
		NumberFormat format = NumberFormat.getCurrencyInstance(Locale.US);
		double money = format.parse(moneyStr).doubleValue();
		System.out.println(money);
	}
}

三、MessageFormat(动态文本)

如果一个字符串中包含了多个与国际化相关的数据,可以使用MessageFormat类对这些数据进行批量处理

package com.jjyy.messageformat;

import java.text.MessageFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;

public class MSGFormatDemo {
	//At 12:30 pm on jul 3,1998, a hurricance destroyed 99 houses and caused $1000000 of damage
	//当一个语句中有多个和国际化相关的内容时,需要先切割字符串将和国际化相关的数据国际化后再拼接字符串.
	public static void main(String[] args) {
		String str = "At {0,time,full} on {1,date,full}, a hurricance destroyed {2,number} houses and caused {3,number,currency} of damage";
		MessageFormat format = new MessageFormat(str,Locale.CHINA);
		
		Calendar c = Calendar.getInstance();
		c.set(1998, 6, 3, 12, 30, 0);
		Date date = c.getTime();
		
		str = format.format(new Object[]{date,date,99,1000000});
		System.out.println(str);
	}
}


分享到:
评论

相关推荐

    国际化资源文件转换工具

    国际化资源装换工具,开发过程可以利用该工具对资源配置项进行编码转换,大大提高开发效率。

    使用native2ascii进行编码格式转换

    使用native2ascii进行编码格式转换 将CN.properties国际化资源文件 转换为 简体中文 控制台命令: native2ascii -reverse -encoding gbk CN.properties CN2.properties

    一个利用struts做的简单国际化

    2、提供不同版本的国际化资源文件,中文需要采用native2ascii转换成unicode 3、在jsp中采用标签来读取国际化消息文本 4、了解利用struts默认将locale放到session中的特性,完成采用编程的方式切换语言设置,设置...

    android String.xml Excel 相互转换工具

    android 国际化 String.xml Excel 相互转换工具

    c#网站实现多语言转换

    asp.多语言 资源文件 web国际化 网站实现多语言转换

    zh.js中文资源用来解决一键切换中英文状态,实现前端国际化的需求

    在vue框架下开发的项目,该项目中有国际化的需求,所需要的zh.js以及en.js资源

    一种自动转换、基于配置的前端国际化方案.zip

    资源优化: 方案在设计时考虑了可用资源,以最大化其效用。通过明智的资源分配,方案可以在有限的资源条件下实现最大的效益,提高效率并减少浪费。 风险管理: 方案通常会对潜在的风险进行评估,并制定相应的风险...

    本机字符(utf-8/gbk)转换成ASCII_JS版.html

    本机字符(utf-8/gbk)转换成ASCII_JS版 中文国际化资源化

    JavaWeb项目网上书店.rar

    一、国际化的相关知识 1、什么是国际化。 程序只有一套,能根据来访者的阅读习惯显示相应的文本、日期时间、货币符号。 2、固定文本的国际化 一个消息资源包:基名_语言_国家.properties ResourceBundle Locale ...

    languager:一个处理源代码国际化的简单工具

    一个处理源代码国际化的简单工具。 它使用正则表达式从源文件中提取密钥和默认翻译。 对于每种语言,它都会生成一组翻译文件,其中将正则表达式替换为给定语言的实际值。 它可以生成供java使用的属性文件。 它...

    Spring MVC 3.0实战指南.ppt

    如何对错误信息进行国际化(2) 目录 数据模型访问结构 访问数据模型:ModelAndView 访问数据模型:@ModelAttribute 访问数据模型:Map及Model 访问数据模型:@SessionAttributes 一场由@SessionAttributes引发的血案.....

    Spring3MVC注解教程.ppt

    如何对错误信息进行国际化(2) 目录 数据模型访问结构 访问数据模型:ModelAndView 访问数据模型:@ModelAttribute 访问数据模型:Map及Model 访问数据模型:@SessionAttributes 一场由@SessionAttributes引发...

    ResourceBundleEditor 资源文件编辑器 eclipse的资源文件编辑插件

    经常在做国际化的时候编辑properties文件。转换文件字符总是让人比较繁琐。有了这个插件所见即所得。我们输入中文的时候自动就转换完毕了。同样的uncode文字我们也可以马上知道内容是什么进行修改。超方便,超好用,...

    中文和unicode码互转

    方便国际化资源文件转换,自己随手写的小工具。

    struts2 详解文档

    配置国际化全局资源文件、输出国际化信息 输出带有占位符的国际化信息 配置包范围国际化资源文件 配置Action范围国际化资源文件 ognl表达式 Struts 2常用标签解说 使用标签防止表单重复提交 Struts 2+...

    关于在综合交通枢纽运行管理中智能化信息系统建设与应用的调研报告-课题(转换).rtf

    企业联盟、连锁、互联网平台等商业运作模式不断涌现,运输资源整合成效显著。多式联运发展取得初步成效,开展 6 条集装箱铁水联运示范通道建设,铁路快运班列等快速起步发展。公路甩挂运输试点稳步推进,已覆盖全国...

    凌霄图像批处理专家

    凌霄图像批处理专家(又名:凌霄图片批处理专家,PhotoBatch)是一款集“智能生成JPG”、“批量格式转换”、“批量脚本处理”、“批量添加水印”、“批量文件改名”、“批量调整尺寸”、“批量制作缩略图”、“制作...

    SpringMVC示例

    员工信息、RESTRUL_CRUD_添加操作&表单标签、RESTRUL_CRUD_删除操作&处理静态资源、RESTRUL_CRUD_修改操作、自定义类型转换器、annotation-driven配置、InitBinder注解、数据的格式化、JSR 303数据校验、错误消息的...

    SpringMVC Employee Demo

    driven配置、InitBinder注解、数据的格式化、JSR303数据校验、错误消息的显示及国际化、Ajax返回JSON、使用HttpMessageConverter、国际化_通过超链接切换中英文、文件上传、自定义的拦截器、拦截器的零Xml配置、异常...

Global site tag (gtag.js) - Google Analytics