java中如何判断输入的日期是不是合法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中如何判断输入的日期是不是合法相关的知识,希望对你有一定的参考价值。

参考技术A import java.util.*;
import java.util.regex.*;
import java.text.*;

/** 这个是按照楼主的描述使用通过判断字符验证时间合法性 */
public class DateUtils2

//测试代码 begin
public static void main(String[] s)
//以下是测试代码
test("20099-1-1");
test("20099-100-1");
test("20099-1-100");
test("2009-1-1");
test("2009-1-31");
test("2009-2-28");
test("2009-2-29");
test("2008-2-29");


private static void test(String stringdate)
System.out.println("输入[" + stringdate + "]是否合法:" + validate(stringdate));

//测试代码 end

//==

/** 判断主方法 */
public static boolean validate(String dateString)
//使用正则表达式 测试 字符 符合 dddd-dd-dd 的格式(d表示数字)
Pattern p = Pattern.compile("\\d4+[-]\\d1,2+[-]\\d1,2+");
Matcher m = p.matcher(dateString);
if(!m.matches()) return false;

//得到年月日
String[] array = dateString.split("-");
int year = Integer.valueOf(array[0]);
int month = Integer.valueOf(array[1]);
int day = Integer.valueOf(array[2]);

if(month12) return false;
int[] monthLengths = new int[]0, 31, -1, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31;
if(isLeapYear(year))
monthLengths[2] = 29;
else
monthLengths[2] = 28;

int monthLength = monthLengths[month];
if(daymonthLength)
return false;

return true;


/** 是否是闰年 */
private static boolean isLeapYear(int year)
return ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) ;



copy的 刚好和你的问题一样~~~~~~~

java中怎么做到判断输入的日期是不是合法

已经有一个字符串,比如2008-1-1,然后我要修改它,修改后要判断它是不是****-**-**格式的,而且要日期格式的(月份不能大于12,还要考虑6月是30天,7月是31天,2月闰年29,非闰年28...这种东西),

参考技术A 先用正则表达式判断格式是否正确。
如果格式正确则进行下一步,用“-”split字符串,得到3个字符串,再用一系列if else语句判断大小月天数
参考技术B string str = "2008/5/4";//假定的日期
//异常扑捉
try

DateTime mytime = DateTime.Parse(str);//假定的时间字符串
str = string.Format(mytime.Year +"-"+ mytime.Month + "-"+mytime.Day);
Console.WriteLine(str);//如果正确就会显示,如果错误会跳到异常块

catch (Exception e)

Console.WriteLine("日期格式输入错误"+e.Message);
return;
参考技术C 张迪
---正解,利用jdk现有资源,对输入的日期字串进行解析,如果解析失败,那么就说明你输入的有问题,jdk内部方法都是经过了很多次验证以后才公布的,准确性要好的多....不过像日期这样的东西,有句话:所有的用户输入都可以认为是邪恶的...所以最好以级联下拉列表来获取!
参考技术D 用字符串的拼接,和swith case 第5个回答  2012-06-13 如果做到比较详细的话就做个过滤器

以上是关于java中如何判断输入的日期是不是合法的主要内容,如果未能解决你的问题,请参考以下文章

java判断日期是不是合法

Javascript判断时间日期输入是不是合法问题

java怎么判断输入的字符串是不是为时间格式

java如何判断一个日期是不是是四个季末的日期

java 如何判断日期是否节假日

java中如何判断日期?