❶ 用Java判断一个日期,包括年,月,日三个数,计算这个日期是这一年的第几天,
可以使用calendar累获取天数:
已知年月日,直接用年月日构造一个Date或者Calender对象,然后有现成的方法获得当前日期是所属年份的第几天,是当前周的第几天,当前月的第几天
比如Calender对象属性
DAY_OF_YEAR
public static final int DAY_OF_YEAR
get 和 set 的字段数字,指示当前年中的天数。一年中第一天的值为 1。
❷ java判断是否是日期
楼主提出的问题有点片面,我的理解是,你是不是想判断字符串是不是日期格式?如果已经是日期类型,那就不需要判断了,对把。判断给定字符串是不是日期我给你提供两种解决思路,一种是用正则,代码我给你写好了。
publicbooleanisDate(Stringdate){
/**
*判断日期格式和范围
*/
Stringrexp="^((\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]))))))";
Patternpat=Pattern.compile(rexp);
Matchermat=pat.matcher(date);
booleandateType=mat.matches();
returndateType;
}
参数就是你要判断的日期字符串,返回布尔值;
另一种方式就是:玩字符串正则才是王道嘛!希望采纳
publicbooleanisValidDate(Stringstr){
booleanconvertSuccess=true;
//指定日期格式为四位年/两位月份/两位日期,注意yyyy/MM/dd区分大小写;
//如果想判断格式为yyyy-MM-dd,需要写成-分隔符的形式
SimpleDateFormatformat=newSimpleDateFormat("yyyy/MM/ddHH:mm");
try{
format.setLenient(false);
format.parse(str);
}catch(ParseExceptione){
//e.printStackTrace();
//如果抛出ParseException或者NullPointerException,就说明格式不对
convertSuccess=false;
}
returnconvertSuccess;
}
推荐使用正则,
❸ 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(month<1 || month>12){ 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(day<1 || day>monthLength){
return false;
}
return true;
}
/** 是否是闰年 */
private static boolean isLeapYear(int year){
return ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) ;
}
}
❹ 在Java中怎么判断有效时间!!!
我记得在看ORACLE的数据库培训教程里有SQL语句可以把一定格式字符串直接转成时间的。你在网上搜下相关资料:
❺ java如何判断数据要保留90天
Date
dt
=
储存日期的字段或别的持久化对象。
long
l1
=
dt.getTime();
long
l2
=
new
Date().getTime();
//
得到当前的时间
boolean
是否大于90天=(l2-l1)>(90*24*3600*1000);
//
比较是否大于90天
一天24小时,一小时3600秒,一秒1000毫秒。
if(是否大于90天){
//
大于90天时,要执行的代码
}
简单介绍:使用了两个Date对象的来判断日期。getTime()方法得到日期的长整数表现形式。最小单位是毫秒。我们只要比较两个日期的长整数形式就能知道这两个日期的范围。
希望对你有帮助。
❻ java怎样判断日期的先后
Java判段两个日期的先后,方法如下:
import java.util.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
public class TestD {
public static void main(String[] args){
String date1="2017-07-19 13:02:58";
String date2="2017-07-19 14:02:58";
//将字符串格式的日期格式化
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
try {
//将日期转成Date对象作比较
Date fomatDate1=sdf.parse(date1);
Date fomatDate2=sdf.parse(date2);
//比较两个日期
int result=fomatDate2.compareTo(fomatDate1);
//如果日期相等返回0
if(result==0){
System.out.println("两个时间相等");
}else if(result<0){
//小于0,参数date1就是在date2之后
System.out.println("date1大于date2");
}else{
//大于0,参数date1就是在date2之前
System.out.println("date1小于date2");
}
} catch (ParseException e) {
e.printStackTrace();
}
}
}
结果:
date1小于date2
❼ java中如何判断日期
可以先取到3个月前的那一天,然后再做判断就行了
❽ java判断字符串是否是日期
Java为了支持多语言,没有固定的日期格式。你需要根据自己的需要指定日期格式,然后用DateFormat类或者SimpleDateFormat类来判断是否是正确的日期格式。
下面的例子供参考。更详细的内容可以参考javadoc。
public class DateUtil{ private static final SimpleDateFormat dateFormat = null; static { dateFormat = new SimpleDateFormat("yyyy/MM/dd"); dateFormat.setLenient(false); } public static boolean isValidDate(String s) { try { dateFormat.parse(s); return true; } catch (Exception e) { return false; } } public static String formatDate(Date d) { return dateFormat.format(d); } }
❾ java中日期怎么判断
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
这个是日期转换万能公式,我一般都是用这个就OK了 呵呵
❿ JAVA 怎么判断一个字符串是不是一个合法的日期格式
正则表达式,可以写在脚本里(javaScript)或者后台处理程序(java),前者好处是直接在客户端处理,但是如果遇见屏蔽脚本的用户该处理无效.后者好处的服务器处理,任何情况都会响应,但是速度照前者逊色.