Spring DateFormatter &&CurrencyFormatter

本文介绍了Java中日期和货币的格式化与解析方法,包括使用DateFormatter进行日期的格式化输出,以及通过CurrencyFormatter实现货币样式的显示。此外还展示了如何通过注解配置格式化规则。

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

  1.DateFormatter java.util.Date<---->String实现日期的格式化/解析

   

 //设置上下语言的语言环境
        LocaleContextHolder.setLocale(Locale.US);
        
        //--------测试日期格式化----------
        Date d = new Date();
        DateFormatter dateFormatter = new DateFormatter();
        //按中文格式输出日期
        System.out.println(dateFormatter.print(d, Locale.CHINESE));//2014-10-30    
        
        DefaultFormattingConversionService conversionService = new DefaultFormattingConversionService();
        //添加前面的DateFormatter
        conversionService.addFormatter(dateFormatter);
        
        System.out.println(conversionService.convert(d, String.class));//Oct 30, 2014
        
        dateFormatter.setPattern("yyyy年MM月dd日");        
        System.out.println(conversionService.convert(d, String.class));//2014年10月30日

 

 

   2.CurrencyFormatter

    java.lang.BigDecimal<---->String实现货币样式的格式化/解析

      // --------测试货币格式化-------------
        CurrencyFormatter currencyFormatter = new CurrencyFormatter();
        BigDecimal money = new BigDecimal(1234567.890);
        System.out.println(currencyFormatter.print(money, Locale.CHINA));//¥1,234,567.89
        conversionService.addFormatter(currencyFormatter);
        System.out.println(conversionService.convert(money, String.class));//$1,234,567.89   

 

public class FormatterModel {
	@NumberFormat(style=Style.NUMBER, pattern="#,###")
	private int totalCount;
	@NumberFormat(style=Style.PERCENT)
	private double discount;
	@NumberFormat(style=Style.CURRENCY)
	private double sumMoney;
	
	@DateTimeFormat(iso=ISO.DATE) 
	private Date registerDate;
	
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") 
	private Date orderDate;

    //省略getter/setter
}

@Number定义数字相关的解析/格式化元数据(通用样式、货币样式、百分数样式),参数如下:

    style用于指定样式类型,包括三种:Style.NUMBER(通用样式) Style.CURRENCY(货币样式) Style.PERCENT(百分数样式),默认Style.NUMBER

    pattern自定义样式,如patter="#,###"

 

@DateTimeFormat定义日期相关的解析/格式化元数据,参数如下:

    pattern指定解析/格式化字段数据的模式,如”yyyy-MM-dd HH:mm:ss”

iso指定解析/格式化字段数据的ISO模式,包括四种:ISO.NONE(不使用)  ISO.DATE(yyyy-MM-dd) ISO.TIME(hh:mm:ss.SSSZ)  ISO.DATE_TIME(yyyy-MM-dd hh:mm:ss.SSSZ),默认ISO.NONE

    style指定用于格式化的样式模式,默认“SS”,具体使用请参考Joda-Time类库的org.joda.time.format.DateTimeFormatforStylejavadoc

优先级: pattern 大于 iso 大于 style 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值