软件国际化的第二个部分,就是动态元素国际化。

  • 数值,货币,时间,日期等数据由于可能在程序运行时动态产生,所以无法像文字一样简单地将它们从应用程序中分离出来,而是需要特殊处理。Java 中提供了解决这些问题的 API 类(位于 java.util 包和 java.text 包中)。
  • Locale 类
    Locale 实例对象代表一个特定的地理,政治、文化区域。
    一个 Locale 对象本身不会验证它代表的语言和国家地区信息是否正确,只是向本地敏感的类提供国家地区信息,与国际化相关的格式化和解析任务由本地敏感的类去完成。(若JDK中的某个类在运行时需要根据 Locale 对象来调整其功能,这个类就称为本地敏感类)。

接下来介绍几个比较常用的API。

DateFormat类(国际化日期)

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

DateFormat 类除了可按国家地区格式化输出日期外,它还定义了一些用于描述日期/时间的显示模式的 int 型的常量,包括FULL, LONG, MEDIUM, DEFAULT, SHORT,实例化DateFormat对象时,可以使用这些常量,控制日期/时间的显示长度。

实例化DateFormat类有九种方式,以下三种为带参形式,下面列出的三种方式也可以分别不带参,或只带显示样式的参数。

  • getDateInstance(int style, Locale aLocale):以指定的日期显示模式和本地信息来获得DateFormat实例对象,该实例对象不处理时间值部分。
  • getTimeInstance(int style, Locale aLocale):以指定的时间显示模式和本地信息来获得DateFormat实例对象,该实例对象不处理日期值部分。
  • getDateTimeInstance(int dateStyle, int timeStyle, Locale aLocale):以单独指定的日期显示模式、时间显示模式和本地信息来获得DateFormat实例对象。

编写测试代码

 @Testpublic void demo1(){// 使用自带的样式格式化日期// 只要日期Date date = new Date();// 有四种显示模式 FULL、LONG、MEDIUM、SHORT// DateFormat df1 = DateFormat.getDateInstance(DateFormat.FULL);// DateFormat df1 = DateFormat.getDateInstance(DateFormat.LONG);// DateFormat df1 = DateFormat.getDateInstance(DateFormat.MEDIUM);DateFormat df1 = DateFormat.getDateInstance(DateFormat.SHORT);System.out.println(df1.format(date));// 只要时间DateFormat df2 = DateFormat.getTimeInstance(DateFormat.FULL);// DateFormat df2 = DateFormat.getTimeInstance(DateFormat.LONG);// DateFormat df2 = DateFormat.getTimeInstance(DateFormat.MEDIUM);// DateFormat df2 = DateFormat.getTimeInstance(DateFormat.SHORT);System.out.println(df2.format(date));//日期和时间都要DateFormat df3 = DateFormat.getDateTimeInstance();System.out.println(df3.format(date));}

运行结果我就不贴图了,大家自己运行感受。
都是一些对API的应用,没什么好说的,直接贴一些测试代码了解API的使用即可。

 @Testpublic void demo2(){//设置LocaleDate date = new Date();DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL,Locale.CANADA);System.out.println(dateFormat.format(date));}

NumberFormat类(国际化数据)

  • 实例化NumberFormat类时,可以使用locale对象作为参数,也可以不使用,下面列出的是使用参数的。
  • getNumberInstance(Locale locale):以参数locale对象所标识的本地信息来获得具有多种用途的NumberFormat实例对象。
  • getIntegerInstance(Locale locale):以参数locale对象所标识的本地信息来获得处理整数的NumberFormat实例对象。
  • getCurrencyInstance(Locale locale):以参数locale对象所标识的本地信息来获得处理货币的NumberFormat实例对象。
  • getPercentInstance(Locale locale):以参数locale对象所标识的本地信息来获得处理百分比数值的NumberFormat实例对象。

编写测试代码

 @Testpublic void demo3() {// 保留小数有效位数double d = 1.23456789456789;// 保留两位小数NumberFormat format = NumberFormat.getNumberInstance();// 最大两位小数format.setMaximumFractionDigits(2);// 最小两位小数format.setMinimumFractionDigits(2);System.out.println(format.format(d));// 货币格式化int i = 100;// 显示美元NumberFormat format2 = NumberFormat.getCurrencyInstance(Locale.US);System.out.println(format2.format(i));// 百分比格式化double d2 = 0.78123;NumberFormat format3 = NumberFormat.getPercentInstance();System.out.println(format3.format(d2));// 想显示两位小数format3.setMaximumFractionDigits(2);format3.setMinimumFractionDigits(2);System.out.println(format3.format(d2));}

到这里,动态元素的国际化就介绍完了,都是一些需要记忆的知识点呐,其实没什么好说的,接下来就是软件国际化的最后一部分,动态文本国际化。

JavaWeb开发——软件国际化(动态元素国际化)相关推荐

  1. java国际化软件_JavaWeb开发——软件国际化(动态元素国际化)

    软件国际化的第二个部分,就是动态元素国际化. 数值,货币,时间,日期等数据由于可能在程序运行时动态产生,所以无法像文字一样简单地将它们从应用程序中分离出来,而是需要特殊处理.Java 中提供了解决这些 ...

  2. javaweb开发软件下载

    由于官网下载开发软件太慢,为了让更多刚接触javaweb快速搭建开发环境,我将常用的软件已经部署在网盘,大家根据需求下载即可. 关注下方公众号,点击其它找到开发软件,根据需求下载即可.

  3. JavaWeb开发实现一个动态页面

    接着上篇文章建完一个web项目后我们再来建一个servlet:File->New->Servlet 出现如下界面,并给package命名"servlet" 然后java ...

  4. JavaWEB开发的国际化

    JavaWEB开发的国际化 软件的国际化:软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的.符合来访者阅读习惯的页面或数据. 固定文本元素的国际化 软件实现 ...

  5. 2011级-csdn-java-张侃— JavaWEB开发-国际化(二)

     编程实现固定文本的国际化 l      ResourceBundle类提供了一个静态方法getBundle,该方法用于装载资源文件,并创建ResourceBundle实例: Locale curre ...

  6. 软件的国际化、Jstl国际化标签

    软件的国际化: 软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的.符合来访者阅读习惯的页面或数据. 一.国际化 软件实现国际化,需具备哪些特征: 1.对于程 ...

  7. JavaWeb开发---B/S和C/S模式 tomcat服务器 Tomcat项目部署和发布 静态网页和动态网页 tomcat对web项目的目录要求 使用idea开发工具创建web项目 设置默认首页

    目录 1. B/S和C/S模式 1.1 C/S模式 1.2 B/S模式 1.3 B/S和C/S区别 2.服务器 3.web 服务器 3.1.IIS 3.2.Tomcat 3.3.Zeus 3.4.Ng ...

  8. JavaWeb开发 前端语言:jQuery(一) jQuery核心函数、jQuery对象、jQuery选择器、以及jQuery元素筛选

    JavaWeb开发 前端语言:jQuery 1.jQuery介绍 1.1 jQuery的初使用 1.2 使用jQuery的常用问题解析 2. jQuery核心函数介绍 3.区分jQuery对象与dom ...

  9. javaweb开发要学习的所有技术和框架总结

    javaweb开发要学习的所有技术和框架总结: 前端技术: HTML, CSS, JAVASCRIPT, JQUERY, AJAX HTML "超文本"就是指页面内可以包含图片.链 ...

  10. JavaWeb开发网上商城

    JavaWeb开发知识总结(网上商城项目小结) 1. 数据库设计 表的关系的设计如下: 2. 使用技术总结 2.1 BaseServlet的设计 实现处理请求的方式1: * 针对每一个请求均创建一个S ...

最新文章

  1. C++leetcode找出两个有序数组的中位数(2)
  2. innerText,outerText,innerHTML,outerHTML区别
  3. 讲师征集| .NET Conf China 2021正式启动!
  4. php Trait 基础应用讲解
  5. freemarker java类_在freemarker使用java类方法
  6. python做视频抽帧图_python-opencv-视频截取帧图片
  7. python_入门初级
  8. 初中数学最全几何模型_初中数学几何模型秘籍.pdf
  9. Spark Sql编程
  10. Java培训机构可靠吗?
  11. Qt实现图片的简单压缩
  12. 最新elasticsearch版本与jdk版本对应图
  13. 用max的角度来解析blender建模!
  14. 一阶线性偏微分方程通解法和特征线法(一)| 两个自变量情况 | 偏微分方程(七)
  15. 学习笔记:Github(1)站在巨人的肩膀上
  16. DJ8-2 主存储器的组织
  17. 2023秋招--游卡--游戏客户端--一面面经
  18. matlab 相位滞后,相位滞后.PPT
  19. JavaScript之赛车游戏
  20. 电子技术基础(三)__电路分析基础__电容元件

热门文章

  1. 超全现代虚幻UE4素材网站整理
  2. 华为太极magisk安装教程_Magisk 需要修复运行环境,缺失Magisk正常工作所需的文件...
  3. 图解密码技术(一)密码
  4. JavaScript 参考手册
  5. 看完左耳朵耗子的116篇文章,我给自己定了个5年技术规划
  6. 扩展欧几里得算法的实现
  7. 数学知识:扩展欧几里得算法
  8. 浅谈扩展欧几里得算法
  9. 高抗干扰低功耗LCD驱动芯片-VK2C21A/B/C/D,常用在电气类、工控类低功耗驱动上
  10. 半导体器件物理【3】半导体与IC工艺