您的位置:

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中如何判断输入的日期是否合法?

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中怎么判断输入的日期是否合法?

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判断某日期 是否超过今天

一、使用Date类创建日期对象

Date date1 = new Date(2017, 5, 20);

二、通过Calendar获得当前日期

Date now;

Calendar c = Calendar.getInstance();

now = new Date(c.get(Calendar.YEAR), c.get(Calendar.MONTH) + 1, c.get(Calendar.DAY_OF_MONTH));

三、使用Date类的after()方法判断一个日期是否在另一个日期的后面

if(date1.after(now)) {

System.out.println("超过了今天");

}

else {

System.out.println("没有超过今天");

}

四、完整的Java程序

import java.util.Calendar;

import java.util.Date;

public class Main {

public static void main(String[] args) {

Date date1 = new Date(2017, 5, 20);

Date now;

Calendar c = Calendar.getInstance();

now = new Date(c.get(Calendar.YEAR), c.get(Calendar.MONTH) + 1, c.get(Calendar.DAY_OF_MONTH));

if(date1.after(now)) {

System.out.println("超过了今天");

}

else {

System.out.println("没有超过今天");

}

}

}

五、运行测试

没有超过今天

java判断是否是日期

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

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.compile(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 判断某个日期是不是今天

给您写了一遍。

代码:

package demo;

import java.text.SimpleDateFormat;

import java.util.Date;

/**

 * 

 * 开发公司:SOJSON在线工具 p

 * 版权所有:© 

 * 博客地址:

 * p

 * 

 * 注释写这里

 * 

 * p

 * 

 * 区分 责任人 日期说明br/

 * 创建 周柏成 2017年4月18日  br/

 *

 * @author zhou-baicheng

 * @email  so@sojson.com

 * @version 1.0,2017年4月18日 br/

 * 

 */

public class Main {

    public static void main(String[] args) {

        //调用

        boolean result = isNow(new Date());

        System.out.println( result?"是今天。":"不是今天。" );

        

    }

    /**

     * 判断时间是不是今天

     * @param date

     * @return    是返回true,不是返回false

     */

    private static boolean isNow(Date date) {

        //当前时间

        Date now = new Date();

        SimpleDateFormat sf = new SimpleDateFormat("yyyyMMdd");

        //获取今天的日期

        String nowDay = sf.format(now);

        

        

        //对比的时间

        String day = sf.format(date);

        

        return day.equals(nowDay);

        

        

        

    }

}