java日期判斷
A. 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號。
B. java中怎樣判斷日期處於兩個日期中
Date date = new Date();
long time = date.getTime();
time越大時間越往後,不知道你用的什麼類但是一般和時間有關的都可以間接得到Date類,然後可以調用getTime方法獲得時間戳,也就是這里的time,你只需比較你的time是是否處於那兩個日期對應的time之間,也就是判斷 if(time>time1&&time<time2)
C. 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;
}
推薦使用正則,
D. 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);
}
}
E. 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
F. java判斷某日期 是否超過今天
一、使用Date類創建日期對象
Datedate1=newDate(2017,5,20);
二、通過Calendar獲得當前日期
Datenow;
Calendarc=Calendar.getInstance();
now=newDate(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程序
importjava.util.Calendar;
importjava.util.Date;
publicclassMain{
publicstaticvoidmain(String[]args){
Datedate1=newDate(2017,5,20);
Datenow;
Calendarc=Calendar.getInstance();
now=newDate(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("沒有超過今天");
}
}
}
五、運行測試
沒有超過今天
G. java 判斷兩個日期是同一天
最簡單的方式就是把兩個日期都格式化成年月日的字元串日期,然後對比兩個字元串是否相等,如果相等就是同一天,否則就不是了。
H. JAVA里判斷某時間是不是在當天中
JAVA里判斷某時間是不是在當天的方法是:
把時間都轉換成毫秒數,知道了當天日期,你就可以獲取當天0點和第二天零點的毫秒數,打卡時間所對應的毫秒數在這兩者之間就可以了。
I. 判斷java 日期字元串
你可以先設置格式,然後根據「2010/12/06
14:30:30」得到Date格式的日期,如果能得到就可以返回一個Date對象,否則返回null
String
text="2010/12/06
14:30:30";
String
date="yyyy/MM/dd
HH:mm:ss";//HH表示為24小時制,hh表示為12小時制
Date
d=new
SimpleFormatDate(date).parse(text);
if(d==null){
...
}else{
...
}
J. java怎樣判斷下面的日期的先後
Java判段兩個日期的先後,方法如下:
importjava.util.Date;
importjava.text.ParseException;
importjava.text.SimpleDateFormat;publicclassTestD{
publicstaticvoidmain(String[]args){
Stringdate1="2017-07-1913:02:58";
Stringdate2="2017-07-1914:02:58";
//將字元串格式的日期格式化
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-ddhh:mm:ss");
try{
//將日期轉成Date對象作比較
DatefomatDate1=sdf.parse(date1);
DatefomatDate2=sdf.parse(date2);
//比較兩個日期
intresult=fomatDate2.compareTo(fomatDate1);
//如果日期相等返回0
if(result==0){
System.out.println("兩個時間相等");
}elseif(result<0){
//小於0,參數date1就是在date2之後
System.out.println("date1大於date2");
}else{
//大於0,參數date1就是在date2之前
System.out.println("date1小於date2");
}
}catch(ParseExceptione){
e.printStackTrace();
}
}
}
結果:
date1小於date2