对"yyyyMM"与"yyyyMMdd"类日期的校验

本文介绍了在Java中遇到的关于'yyyyMM'格式日期校验的问题。传统使用SimpleDateFormat的parse()方法进行校验可能会存在安全隐患,例如'201513234'不应被视为有效输入,但在某些情况下不会抛出异常。为了解决这个问题,提出了一个更安全的校验方法,并通过示例代码展示了新方法的正确性和安全性。
摘要由CSDN通过智能技术生成

        最近在工作中需要用到对"yyyyMM"类的日期校验,比如"201501"就表示2015年1月,然后如果是"201513",“2015qew”等这些这是非法的输入。

       之前使用了一直方式校验,使用SimpleDateFormat类的parse()方法,该方法会抛出ParseException异常,如果parse不符合format,就会抛出该异常。但后来发现了一个问题,就是这种方法对于"yyyy-MM","yyyy-MM-dd"类格式还可用,但到了"yyyyMM"类的就会出现问题,下面用代码说明:

public class Test {
   private static SimpleDateFormat sdf = new SimpleDateFormat("yyyyMM") ;
	
   public static void main(String[] args) {
	   String testCase1 = "201501";
	   String testCase2 = "201513234";
	   String testCase3 = "2015qew";
	   try {
		  sdf.parse(testCase1) ;
		  System.out.println("'"+testCase1+"'没有发生异常");
		  sdf.parse(testCase2) ;
		  System.out.println("'"+testCase2+
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值