java国际化软件_JavaWeb开发——软件国际化(动态元素国际化)
软件国际化的第二个部分,就是动态元素国际化。
数值,货币,时间,日期等数据由于可能在程序运行时动态产生,所以无法像文字一样简单地将它们从应用程序中分离出来,而是需要特殊处理。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实例对象。
编写测试代码
@Test
public 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的使用即可。
@Test
public void demo2(){
//设置Locale
Date 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实例对象。
编写测试代码
@Test
public 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));
}
到这里,动态元素的国际化就介绍完了,都是一些需要记忆的知识点呐,其实没什么好说的,接下来就是软件国际化的最后一部分,动态文本国际化。
java国际化软件_JavaWeb开发——软件国际化(动态元素国际化)相关推荐
- Java程序员常用开发软件介绍
Java程序员常用开发软件介绍 Java程序员常用开发软件介绍 后端开发利器:idea / eclipse及各种封装版本 数据库客户端:Navicat / Heidisql 前端开发: vs code ...
- 如何正确下载安装eclipse(java常用的编程开发软件)?
如何下载安装eclipse? Java编程最好的集成开发工具就是IBM研发的eclipse软件,eclipse完全免费,是java开发人员的必备平台.刚刚发布的最新eclipse是Eclipse ID ...
- Java开发者文档(开发软件+规范)
java-developer-document 文档地址:https://gitee.com/zhengqingya/java-developer-document 一.开发环境 Java开发环境系列 ...
- java最好用的开发软件,掌握这些知识点再也不怕面试通不过!
1. 前言 大家都知道,Postman是一个非常受欢迎的API接口调试工具,提供有Chrome扩展插件版和独立的APP,不过它的很多高级功能都需要付费才能使用. 如果你连Postman都还没有用过,不 ...
- java ssm框架_JavaWeb开发SSM框架搭建详解
1.需要用到的jar包:由于很多的jar包不好下载,我直接上传到百度网盘: 很多,而且不好下载,我已经整理好好了: 关于SSM框架:以前的博客有介绍过 第一步:创建Dynamic Web Projec ...
- java 实现 指派_Activiti 开发案例之动态指派任务
流程图 以上是一个请假的流程图,以下为流程任务节点描述: 员工发起请假流程 部门经理审批 同意则进入人事审批 拒绝则调整申请或者直接结束流程 人事审批通过则进入销假环节 人事审批拒绝则调整申请或者直接 ...
- java keypress事件_javaweb开发-js代码中keypress事件调用判断,取得keyCode值
在js代码中的一段代码,keypress事件调用的函数中的代码. var keyCode = event.keyCode ? event.keyCode : event.which ? event.w ...
- 软件模板开发与定制开发有什么区别?
软件开发一般分为两种类型,模板开发和定制开发.两种不同的开发方式,在价格上有很大的区别,那么企业该选择软件定制开发还是模板开发呢? 一.模版开发 所谓模板就好像模具一样,批量生产,固定开发.模板开发, ...
- 软件定制开发怎么收费
软件定制开发 软件定制开发公司怎么收费 软件定制开发公司怎么收费 简单点来说,要视手机APP的需求及质量而言,价位一般在几千到十几万左右,更高端的价格更高. 今天,我们就来详细分析一下这个问题,请继续 ...
最新文章
- java代码如何写出打印_java - 为什么这个代码向后写,打印“Hello World!”
- 什么是java四大引用?
- Java黑皮书课后题第4章:*4.5(几何:正多边形的面积)正多边形是一个具有n条边的多边形,它每条边的长度都相等,而且所有角的度数也相等。编写程序,提示用户数输入边个数和边长,然后显示它的面积
- ExtJs2.0学习系列(13)--Ext.TreePanel之第二式
- php合图,php合并图片
- win10保护色设置及还原
- 交通仿真 | SUMO第一步
- SSHD服务的搭建与管理
- html实战解析—折扣计算器生成机制及实例代码
- 目标检测算法——YOLOv5/YOLOv7改进之结合CBAM
- python词频统计_用Python实现一个词频统计(词云+图)
- C# word 操作进阶-05-复制表格[转载]
- CentOS 安装HTTP代理服务器Tinyproxy---配置简捷
- 人脸识别眨眼张嘴软件_人脸识别张张嘴眨眨眼jar、css、js
- 雷鸟电视卸载自带应用和开机广告+停用自动更新
- Unity WebGL错误集锦
- android移动端与服务端通信保持Session会话
- Linux入门合集(入门一篇就够了!)
- ie8和html5的兼容性,ie8网页兼容性不完全指南
- js刷新页面和刷新打开自己的父页面