对于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