java代码如何检测日期是否有效呢?
下文笔者讲述使用java代码检测日期有效的方法分享,如下所示
验证日期有效性
验证日期有效性: 我们需从验证日期字符串是否按照我们输入的格式 并且数据是否符合日期要求 验证日期有效性的实现思路: 使用try catch将日期转换为date对象例:
检测日期有效性
package com.java265.date; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class DateValidator { public boolean isThisDateValid(String dateToValidate, String dateFromat){ if(dateToValidate == null){ return false; } SimpleDateFormat sdf = new SimpleDateFormat(dateFromat); sdf.setLenient(false); try { //Date转换失败,则报相应的异常 Date date = sdf.parse(dateToValidate); System.out.println(date); } catch (ParseException e) { e.printStackTrace(); return false; } return true; } }
单元测试
package com.java265.test; import org.junit.*; import com.java265.date.DateValidator; import static org.junit.Assert.*; public class DateValidatorTest { private DateValidator dateValidator; @Before public void init() { dateValidator = new DateValidator(); } @Test public void testDateIsNull() { assertFalse(dateValidator.isThisDateValid(null, "dd/MM/yyyy")); } @Test public void testDayIsInvalid() { assertFalse(dateValidator.isThisDateValid("32/02/2022", "dd/MM/yyyy")); } @Test public void testMonthIsInvalid() { assertFalse(dateValidator.isThisDateValid("31/20/2022", "dd/MM/yyyy")); } @Test public void testYearIsInvalid() { assertFalse(dateValidator.isThisDateValid("31/20/2022", "dd/MM/yyyy")); } @Test public void testDateFormatIsInvalid() { assertFalse(dateValidator.isThisDateValid("2022/02/20", "dd/MM/yyyy")); } @Test public void testDateFeb29_2022() { assertTrue(dateValidator.isThisDateValid("29/02/2022", "dd/MM/yyyy")); } @Test public void testDateFeb29_2011() { assertFalse(dateValidator.isThisDateValid("29/02/2022", "dd/MM/yyyy")); } @Test public void testDateFeb28() { assertTrue(dateValidator.isThisDateValid("28/02/2022", "dd/MM/yyyy")); } @Test public void testDateIsValid_1() { assertTrue(dateValidator.isThisDateValid("31/01/2022", "dd/MM/yyyy")); } @Test public void testDateIsValid_2() { assertTrue(dateValidator.isThisDateValid("30/03/2022", "dd/MM/yyyy")); } @Test public void testDateIsValid_3() { assertTrue(dateValidator.isThisDateValid("30/03/2022", "dd/MM/yyyy")); } }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。