Compare Date objects with different levels of precision

前端 未结 19 2080
日久生厌
日久生厌 2020-12-08 13:01

I have a JUnit test that fails because the milliseconds are different. In this case I don\'t care about the milliseconds. How can I change the precision of the assert to i

19条回答
  •  余生分开走
    2020-12-08 13:21

    Just compare the date parts you're interested in comparing:

    Date dateOne = new Date();
    dateOne.setTime(61202516585000L);
    Date dateTwo = new Date();
    dateTwo.setTime(61202516585123L);
    
    assertEquals(dateOne.getMonth(), dateTwo.getMonth());
    assertEquals(dateOne.getDate(), dateTwo.getDate());
    assertEquals(dateOne.getYear(), dateTwo.getYear());
    
    // alternative to testing with deprecated methods in Date class
    Calendar calOne = Calendar.getInstance();
    Calendar calTwo = Calendar.getInstance();
    calOne.setTime(dateOne);
    calTwo.setTime(dateTwo);
    
    assertEquals(calOne.get(Calendar.MONTH), calTwo.get(Calendar.MONTH));
    assertEquals(calOne.get(Calendar.DATE), calTwo.get(Calendar.DATE));
    assertEquals(calOne.get(Calendar.YEAR), calTwo.get(Calendar.YEAR));
    

提交回复
热议问题