java判断日期代码 java判断日期是否在范围内

java判断是否是日期

楼主提出的问题有点片面,我的理解是,你是不是想判断字符串是不是日期格式?如果已经是日期类型,那就不需要判断了,对把。判断给定字符串是不是日期我给你提供两种解决思路,一种是用正则,代码我给你写好了。

我们拥有十载网页设计和网站建设经验,从网站策划到网站制作,我们的网页设计师为您提供的解决方案。为企业提供网站制作、成都网站制作、微信开发、微信平台小程序开发、手机网站开发、HTML5、等业务。无论您有什么样的网站设计或者设计方案要求,我们都将富于创造性的提供专业设计服务并满足您的需求。

public boolean isDate(String date) {

/**

 * 判断日期格式和范围

 */

String rexp = "^((\\d{2}(([02468][048])|([13579][26]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([13579][01345789]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))";

Pattern pat = Pattern点抗 pile(rexp);

Matcher mat = pat.matcher(date);

boolean dateType = mat.matches();

return dateType;

}

参数就是你要判断的日期字符串,返回布尔值;

另一种方式就是:玩字符串正则才是王道嘛!希望采纳

public boolean isValidDate(String str) {

boolean convertSuccess = true;

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

//如果想判断格式为yyyy-MM-dd,需要写成-分隔符的形式

SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd HH:mm");

try {

format.setLenient(false);

format.parse(str);

} catch (ParseException e) {

// e.printStackTrace();

// 如果抛出ParseException或者NullPointerException,就说明格式不对

convertSuccess = false;

}

return convertSuccess;

}

推荐使用正则,

做个日期查询,判断开始日期与终止日期范围必须在一个月之内,用java代码

import java.text.DateFormat;

import java.text.ParsePosition;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.logging.SimpleFormatter;

public class DateTest {

/**

* 判断是否在同一个月

* @param startDate yyyy-MM-dd

* @param endDate yyyy-MM-dd

* @return false:不在同一个月内,true在同一个月内

*/

public static boolean isMonth(String startDate,String endDate){

if(margin(startDate, endDate)31){

return false;

}

int startMonth = Integer.parseInt(startDate.substring(5, 7));

int endMonth = Integer.parseInt(endDate.substring(5, 7));

if(startMonth==endMonth){

return true;

}else{

return false;

}

}

/**

* 计算开始日期和结束日期差

* @param startDate yyyy-MM-dd

* @param endDate yyyy-MM-dd

* @return

*/

private static int margin(String startDate,String endDate){

ParsePosition pos = new ParsePosition(0);

ParsePosition pos2 = new ParsePosition(0);

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

Date ds = sdf.parse(startDate, pos);

Date de = sdf.parse(endDate, pos2);

long l = de.getTime()-ds.getTime();

int margin = (int)(l/24*60*60*1000);

return margin;

}

/**

* main方法测试

* @param args

*/

public static void main(String[] args) {

System.out.println(DateTest.isMonth("2014-10-17", "2014-10-25"));

System.out.println(DateTest.isMonth("2014-10-17", "2014-12-25"));

}

}

Java判断日期是否是本日,本周,本月

public static void main(String[] args) {

SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");

Calendar firstDayOfWeek = Calendar.getInstance(Locale.getDefault());

firstDayOfWeek.setFirstDayOfWeek(Calendar.MONDAY);

int day = firstDayOfWeek.get(Calendar.DAY_OF_WEEK);

firstDayOfWeek.add(Calendar.DATE, -day+1+1);// 后面的+1是因为从周日开始

// 本周一的日期

System.out.println(format.format(firstDayOfWeek.getTime()));

Calendar lastDayOfWeek = Calendar.getInstance(Locale.getDefault());

lastDayOfWeek.setFirstDayOfWeek(Calendar.MONDAY);

day = lastDayOfWeek.get(Calendar.DAY_OF_WEEK);

lastDayOfWeek.add(Calendar.DATE, 7-day+1);

// 本周星期天的日期

System.out.println(format.format(lastDayOfWeek.getTime()));

}

这一段代码可以获取本周一的日期、本周日的日期,比如本周一为20180702、本周日为20180708。只要判断给定的日期数字是否在[20180702, 20180708]范围内即可

以上的是判断日期是否是本周的方法,至于本日和本月就很好判断了,直接将日期格式化为20180702类似的数字,然后与今天进行比较即可判断是否本日,与本月的字符串201807进行比较,看字符串的前面6个字符是否equals即可

写一段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://pwwzsj.com/article/ddcpoio.html