❶ 用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),前者好處是直接在客戶端處理,但是如果遇見屏蔽腳本的用戶該處理無效.後者好處的伺服器處理,任何情況都會響應,但是速度照前者遜色.