成都创新互联网站制作重庆分公司

java合法日期代码,日期类java

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

Java为了支持多语言,没有固定的日期格式。你需要根据自己的需要指定日期格式,然后用DateFormat类或者SimpleDateFormat类来判断是否是正确的日期格式。下面的例子供参考。更详细的内容(比如yyyy,MM,dd各代表什么)可以参考javadoc。

目前创新互联公司已为上千余家的企业提供了网站建设、域名、雅安服务器托管、网站托管、服务器托管、企业网站设计、奎文网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

public class DateUtil

{

private static final SimpleDateFormat dateFormat = null;

static

{

// 指定日期格式为四位年/两位月份/两位日期,注意yyyy/MM/dd区分大小写;

dateFormat = new SimpleDateFormat("yyyy/MM/dd");

// 设置lenient为false. 否则SimpleDateFormat会比较宽松地验证日期,比如2007/02/29会被接受,并转换成2007/03/01

dateFormat.setLenient(false);

}

public static boolean isValidDate(String s)

{

try

{

dateFormat.parse(s);

return true;

}

catch (Exception e)

{

// 如果throw java.text.ParseException或者NullPointerException,就说明格式不对

return false;

}

}

// 下面这个方法则可以将一个日期按照你指定的格式输出

public static String formatDate(Date d)

{

return dateFormat.format(d);

}

}

java中怎么判断输入的日期是否合法?

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("\\d{4}+[-]\\d{1,2}+[-]\\d{1,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(month1 || 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(day1 || daymonthLength){

return false;

}

return true;

}

/** 是否是闰年 */

private static boolean isLeapYear(int year){

return ((year % 4 == 0 year % 100 != 0) || year % 400 == 0) ;

}

}

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

java.text.DateFormat dateFormat= new java.text.SimpleDateFormat("yyyy-MM-dd kk:mm:ss", Locale.ENGLISH);

dateFormat.setLenient(false);

java.util.Date timeDate = dateFormat.parse(dateString);

//转换为util类型

看到dateFormat.setLenient(false);没有,设定其为false就是强制判断是否非法日期,不让系统自动转换,否则2月31号系统会自动转换为3月2号或者3号。

写一段JAVA代码判断日期格式是否正确

static

public

boolean

isValidDate(

int

year,

int

mon,

int

day,

short

year_min,short

year_max,

StringBuffer

msg)

{

if(yearyear_min

||

yearyear_max)

{

msg.append("年份必须在("+

year_min+"~"+year_max+

")之间,输入值("+year+")无效\n");

return

false;

}else

if(mon1

||

mon12){

msg.append("月份必须在(1~12)之间,输入值("+mon+")无效\n");

return

false;

}else

if(day1

||

day31){

msg.append("日号必须在(1~31)之间,输入值("+day+")无效\n");

return

false;

}else

if(mon==2){

if(isLeapYear(year)

day29){

msg.append("闰年的闰二月日号必须在(1~29)之间,"+year+"是闰年,输入值("+day+")无效\n");

return

false;

}else

if(day28){

msg.append("非闰年的闰二月的日号必须在(1~28)之间,"+year+"不是闰年,输入值("+day+")无效\n");

return

false;

}

}

return

true;

}

//闰年

static

public

boolean

isLeapYear(int

year){

return

(year%4==0

year%100!=0)||

year%400==0;

}


当前标题:java合法日期代码,日期类java
链接分享:http://cxhlcq.com/article/hcjjgh.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部