Ⅰ java輸入的日期與當前的日期做比較
Java中日期時間比較
java.text.SimpleDateFormat 類 ----時間日期格式化
java.util.Date類 ----構造時間日期
java.util.Date類compareTo方法 ----比較日期時間
java中日期時間的比較要用到java.text.SimpleDateFormat 類和java.util.Date類compareTo方法,SimpleDateFormat類用於時間日期格式化,將日期時間格式化為制定的格式,compareTo方法用於比較日期時間。以下為我寫過的程序片段:
String data=doc.getItemValueString("fd_ngr");
//擬稿時間
String data4=data.substring(data.indexOf(' '),data.length());
int panan=data4.indexOf("-");
int panan1=data4.indexOf("/");
ec_dbsy=vi_dbsy.getAllEntries();
//構造日期格式yyyy-MM-NN
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat formatter2 = new SimpleDateFormat("MM/dd/yyyy");
if(data4.length()!=0)
{
if (panan!=-1){
try {
Date date1 = formatter.parse(data4);
Date date0=new Date();
Date date2 =formatter.parse("2006-08-31");
Date date3=formatter.parse("2006-07-01");
int number1=date1.compareTo(date2);
int number2=date1.compareTo(date3);
//返回 0 表示時間日期相同
//返回 1 表示日期1>日期2
//返回 -1 表示日期1<日期2
if( number2==1)
{
if(number1==-1)
{
System.out.println("日期格式符合要求!");
System.out.println("日期格式符合要求的yyyy-MM-dd的文檔ID是:"+doc.getUniversalID());
String mPath="\\"+"\\10.52.4.4\\d$\\Program Files\\WebSphere\\AppServer\\installedApps\\oa1\\oaWeb20061030_war.ear\\oaWeb20061030.war\\doc_fw";
DaglImpl daglImpl = new DaglImpl();
daglImpl.addFW(doc,mPath); //歸檔處理
}
}
} catch (ParseException e) {
e.printStackTrace();
}
}
Ⅱ java 比較當前日期時間和給出的日期時間(String類型),注意格式類型、要求代碼
public class test {
public static void main(String args[]) {
int i= compare_date("1995-11-12 15:21", "1999-12-11 09:59");
System.out.println("i=="+i);
}
public static int compare_date(String DATE1, String DATE2) {
DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm");//日期格式控制
try {
Date dt1 = df.parse(DATE1);
Date dt2 = df.parse(DATE2);
if (dt1.getTime() > dt2.getTime()) {
System.out.println("dt1 在dt2前");
return 1;
} else if (dt1.getTime() < dt2.getTime()) {
System.out.println("dt1在dt2後");
return -1;
} else {
return 0;
}
} catch (Exception exception) {
exception.printStackTrace();
}
return 0;
}
}
Ⅲ java中怎麼比較兩個日期的大小
JDK問道里 這三個方法都可以。
after:當且僅當此 Date 對象表示的瞬間內比 when 表示的瞬間晚,才返回 true;否容則返回
false。
before:早
compareTo:如果參數 Date 等於此 Date,則返回值 0;如果此 Date 在 Date 參數之前,則返回小於 0
的值;如果此 Date 在 Date 參數之後,則返回大於 0 的值。
Ⅳ java中date類型怎麼比較大小
date 實現了Comparable 介面 調用compareTo(Date date)方法可以比較大小,
例如 比較date1 和 date2的大小
int res = date1.compareTo(date2);
相等則返回內0,date1大返回1,否則容返回-1;
Ⅳ 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兩個string類型時間的比較
string計算不準確,最好轉化為日期計算。
我寫了一個函數:
//package com.color.program;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class CompareTime {
public static void main(String[] args){
String t1 = "2008-05-09";
String t2 = "2008-5-13";
try {
System.out.println(CompareTime.getBetweenDays(t1, t2));
} catch (ParseException e) {
e.printStackTrace();
}
}
/**
* 取得兩個時間段的時間間隔
* @author color
* @param t1 時間1
* @param t2 時間2
* @return t2 與t1的間隔天數
* @throws ParseException 如果輸入的日期格式不是0000-00-00 格式拋出異常
*/
public static int getBetweenDays(String t1,String t2) throws ParseException{
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
int betweenDays = 0;
Date d1 = format.parse(t1);
Date d2 = format.parse(t2);
Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
c1.setTime(d1);
c2.setTime(d2);
// 保證第二個時間一定大於第一個時間
if(c1.after(c2)){
c1 = c2;
c2.setTime(d1);
}
int betweenYears = c2.get(Calendar.YEAR)-c1.get(Calendar.YEAR);
betweenDays = c2.get(Calendar.DAY_OF_YEAR)-c1.get(Calendar.DAY_OF_YEAR);
for(int i=0;i<betweenYears;i++){
c1.set(Calendar.YEAR,(c1.get(Calendar.YEAR)+1));
betweenDays += c1.getMaximum(Calendar.DAY_OF_YEAR);
}
return betweenDays;
}
}
運行結果:4