对于JAVA FORMAT种的一些理解

对于JAVA FORMAT类的一些理解

首先呢,这个类在JAVA开发中非常常见。

 

但是总是不能将其掌控。

 

但是现在终于有个清醒的认识了:

1、这个类的作用就是专门格式化的,你无论给他一个什么样的object,它都能以指定的格式返回出来。

比如像simpleDateFormat:传给它日期和格式,它会以传进来的格式将日期返回出去。

具体示例如下:

public static String formatYMD(Date date) {
		return date == null ? "" : formatDateTime(date, "yyyy-MM-dd");
	}
public static String formatDateTime(Date date, String format) {
		if (date == null)
			return null;
		if (format == null)
			return date.toString();
		DateFormat df = new SimpleDateFormat(format);
		return df.format(date);
	}
   

2、DecimalFormat:传它给数值和格式,它也会以传进来的格式将BigDecimal以字符串形式返回出去。

具体示例如下:

 

public static String changeDoubleToString(double sum){
		BigDecimal big=new BigDecimal(sum);
		big.setScale(2, RoundingMode.HALF_UP);
		DecimalFormat df=new DecimalFormat("##0.00");
		return df.format(big);
	}

 这里要注意,df.format(BigDecimal),这个方法不是在DecimalFormat 中的,而是在java.text.format类中的。DecimalFormat 是它的子类。

 

 

3、从struts的format入手。(它默认的不是四舍五入,而是half_even,偏向于偶数的,未经测试)

 

 

<bean:write name="amount" format="###,###.####"  />
 

对于这个代码而言,举个例子,比如amount=123456.789

那么它格式化过后的值就是:123,456.789。

 

但是它不会补0.

如果想要它补成0就写成:

 

<bean:write name="amount" format="###,###.0000"  />
 

此时它格式化过后的值是:123456.7890