java.text包中的DateFormat,NumberFormat一些用法

本文介绍了Java中日期和数字的格式化方法,包括DateFormat和NumberFormat的具体应用,以及SimpleDateFormat和DecimalFormat的实例演示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >




import java.text.DateFormat;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;


public class XZou {


/**
* DateFormat是一个日期格式化处理器,它是一个抽象类,它常用的子类是SimpleDateFormat
* NumberFormat是一个数字格式化处理器,它是一个抽象类,它的常用的子类是DecimalFormat
* @param args
*/
public static void main(String[] args){


DateFormat df = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 E");//构造函数中的参数是指定输出什么样的格式
/**
* 格式列表如下:
y 年 Year 1996; 96
M 年中的月份 Month July; Jul; 07
w 年中的周数 Number 27
W 月份中的周数 Number 2
D 年中的天数 Number 189
d 月份中的天数 Number 10
F 月份中的星期 Number 2
E 星期中的天数 Text Tuesday; Tue
a Am/pm 标记 Text PM
H 一天中的小时数(0-23) Number 0
k 一天中的小时数(1-24) Number 24
K am/pm 中的小时数(0-11) Number 0
h am/pm 中的小时数(1-12) Number 12
m 小时中的分钟数 Number 30
s 分钟中的秒数 Number 55
S 毫秒数 Number 978

*/

String strDate = df.format(new Date());//格式化系统当前时间

System.out.println(strDate);//输出 xxxx年xx月xx日 xx时xx分xx秒 星期x。您也可以根据这个字符串转换成日期对象

try {

Date date = df.parse(strDate);//将串转换成日期对象

//System.out.println(date);

} catch (ParseException e) {

e.printStackTrace();
}



System.out.println("****************数字格式化处理器*******************");


NumberFormat nf = new DecimalFormat("#,##0.00");//构造函数中的参数是指定输出什么样的格式
/**
0 数字 是 阿拉伯数字
# 数字字 是 阿拉伯数字,如果不存在则显示为 0
. 数字 是 小数分隔符或货币小数分隔符
- 数字 是 减号
, 数字 是 分组分隔符
E 数字 是 分隔科学计数法中的尾数和指数。在前缀或后缀中无需加引号。
; 子模式边界 是 分隔正数和负数子模式
% 前缀或后缀 是 乘以 100 并显示为百分数
\u2030 前缀或后缀 是 乘以 1000 并显示为千分数
¤ (\u00A4) 前缀或后缀 否 货币记号,由货币符号替换。如果两个同时出现,则用国际货币符号替换。如果出现在某个模式中,则使用货币小数分隔符,而不使用小数分隔符。
' 前缀或后缀 否 用于在前缀或或后缀中为特殊字符加引号,例如 "'#'#" 将 123 格式化为 "#123"。要创建单引号本身,请连续使用两个单引号:"# o''clock"。
*/

String strValue = nf.format(2222100.12);//

System.out.println(strValue);//"222,210,000.12"

try {

double value = (Double)nf.parse(strValue);//转换成数值对象

//System.out.println(value);
} catch (ParseException e) {

e.printStackTrace();
}

//当然NumberFormat 也提供了确定哪个语言环境具有数值格式以及它们名字的方法


NumberFormat ni = NumberFormat.getNumberInstance();//创建格式化器(默认地区Local格式)数字格式化

NumberFormat ci = NumberFormat.getCurrencyInstance();//创建格式化器(默认地区Local格式)货币格式化

NumberFormat pi = NumberFormat.getPercentInstance();//创建格式化器(默认地区Local格式)百分比格式化



System.out.println(ni.format(24324234.345));//24,324,234.345

//setMaximumFractionDigits(int) 设置数值的小数部分允许的最大位数。
//setMaximumIntegerDigits(int) 设置数值的整数部分允许的最大位数。
//setMinimumFractionDigits(int) 设置数值的小数部分允许的最小位数。
//setMinimumIntegerDigits(int) 设置数值的整数部分允许的最小位数。

ni.setMaximumIntegerDigits(7);//

ni.setMaximumFractionDigits(2);//

System.out.println(ni.format(24324234.345));//4,324,234.34



System.out.println(ci.format(24.3));//¥24.30

System.out.println(pi.format(0.456));//46%







}


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值