Java中BigDecimal、Date等特殊格式比较大小的方法总结(持续更新中)

本文总结了在Java开发中,如何比较BigDecimal和Date两种特殊格式的数据大小。对于BigDecimal,强调不能直接使用大于、小于符号进行比较,推荐正确的比较方式;而对于Date,提供了常规和高级的比较方法,并提醒在比较前确保日期格式为标准格式,否则可能导致异常。

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

特殊格式比较的方法总结

开发中经常与到要比较两值大小的问题,一般的格式通过">","<"即可,但是有些特殊的格式就不能使用这些运算符做判断或者有更简便的方法。下面总结一下开发中遇到的比较问题,并在今后的开发中会持续更新…

1.BigDecimal比较大小的方法

BigDecimal不能直接用">","<"比较
例如:

@Test
public void containsTest() {
    BigDecimal a =new BigDecimal(0.1);
    BigDecimal b =new BigDecimal(0.2);
    if(a>b){//程序会报错

    }
}

正确操作

public void containsTest() {
    BigDecimal a =new BigDecimal(0.1);
    BigDecimal b =new BigDecimal(0.2);
    int result = a.compareTo(b);
    result = -1;//表示a小于b
    result = 0;//表示a等于b;
    result = 1;//表示a大于b;
    if(a.compareTo(b)==0){

    }
}

2.Date比较大小

一般写法

@Test
public void dateTest() {
    Date date1 = new Date();
    Date date2 = new Date();
    boolean result1 = date1.getTime() > date2.getTime();   // date1时间比date2时间大(所以date1比date2晚)
    boolean result2 = date1.getTime() < date2.getTime();   // date1时间比date2时间小(所以date1比date2早)
    boolean result3 = date1.getTime() == date2.getTime();  // date1时间和date2时间相等
}

高级写法

@Test
public void dateTest1() {
    Date date1 = new Date();
    Date date2 = new Date();
    boolean result1 = date1.before(date2);  //true ——>date1小于date2(date1比date2早) false反之
    boolean result2 = date1.after(date2);  //true ——>date1大于date2(date1比date2晚) false反之
    boolean result3 = date1.equals(date2); //rure 相等
}

注意!
date1和date2的2个日期,一定要是标准的日期格式:yyyyMMddHHmmss或yyyy-MM-dd HH:mm:ss
如果不是,在比较前一定要先格式化成这两种格式后再做比较,否则会抛异常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值