java兩個時間比較
Ⅰ java中如何比較兩個時間字元串的大小
一種思路:用 SimpleDateFormat 來處理,可以轉成long形式的,那是1970年1月1日起到現在的毫秒數。可以直接比大小了。
另外一種思路:因為你這里是用的補全格式(7月寫成了07),那麼可以直接字面轉了比較
public static void main(String[] _s) {
String str1 = "2010-07-16 12:00:00";
long longstr1 = Long.valueOf(str1.replaceAll("[-\\s:]",""));
System.out.println(longstr1);
}
這個結果是20100716120000,就這個意思,直接字面轉成long形式後比
Ⅱ java怎麼比較兩個日期(年和月)的大小
1、獲取日期的年月
functionintgetYearMonth(Datedt){//傳入日期
Calendarcal=Calendar.getInstance();
cal.setTime(dt.getTime());//設置時間
intyear=cal.get(Calendar.YEAR);//獲取年份
intmonth=cal.get(Calendar.MONTH);//獲取月份專
returnyear*100+month;//返回年份乘以100加上月份的值,因屬為月份最多2位數,所以年份乘以100可以獲取一個唯一的年月數值
}
2、比較日期
intd1=getYearMonth(newDate());
intd2=getYearMonth(newDate());
if(d1==d2){//年月相等
}elseif(d1>d2){//d1比d2晚
}else{//d1比d2早
}
Ⅲ java 怎麼比較兩個時間是否相等
一般時間比較是比較它的值。
一般時間表現為兩種形式:
時間戳:例,1506484528223(到秒),表示回到1900年的秒數
格式化答時間:例,20170927120000 (就是格式化時間yyyyMMddHHmmss一類的)
比較時間時要轉換為同一種形式比較才有意義。以下供參考,我不知道你exetime的格式:
//其中的格式按照你exetime的格式來寫
Stringtimes=newSimpleDateFormat("yyyyMMddHHmmss").format(newDate());
System.out.println(times.substring(0,10));
System.out.println(exetime.substring(0,10));
//轉換相同形式後用equals判斷就好了
System.out.println(times.substring(0,10).equals(exetime.substring(0,10)));
Ⅳ 多個時間如何比較 用java寫!
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Test {
/**
* @param args
*/
public static void main(String[] args){
String date="2099-12-12";
DateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd");
Date d1;
try {
d1 = dateformat.parse(date);
Date d2=new Date();
if(d1.before(d2)){
System.out.println("字元串的時間早於電腦時間!");
}
if(d1.after(d2)){
System.out.println("字元串的時間晚於電腦時間!");
}
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
鄙視為分而來的人 !
Ⅳ java 日期怎麼比較大小
例子:
String beginTime=new String("2017-06-09 10:22:22");
String endTime=new String("2017-05-08 11:22:22");
直接用Date自帶方法before()和after()比較
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date sd1=df.parse(beginTime);
Date sd2=df.parse(endTime);
System.out.println(sd1.before(sd2));
System.out.println(sd1.after(sd2));
用String的compareTo()方法:
Integer i=beginTime.compareTo(endTime);
System.out.println(i);
返回正值是代表左側日期大於參數日期,反之亦然,日期格式必須一致
轉成date格式換成秒數比較秒數大小,getTime()方法
Date sd1=df.parse(beginTime);
Date sd2=df.parse(endTime);
long long1 =sd1.getTime()
long long2= sd2.getTime()
(5)java兩個時間比較擴展閱讀:
Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程 。
Java具有簡單性、面向對象、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點。Java可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等。
Ⅵ java中怎麼比較兩個日期的大小
JDK問道里 這三個方法都可以。
after:當且僅當此 Date 對象表示的瞬間比 when 表示的瞬間晚,才返回 true;否內則返回
false。
before:早容
compareTo:如果參數 Date 等於此 Date,則返回值 0;如果此 Date 在 Date 參數之前,則返回小於 0
的值;如果此 Date 在 Date 參數之後,則返回大於 0 的值。
Ⅶ 如何用java比較兩個時間或日期的大小
首先
按照一定的格式輸入兩個日期的字元串
然後用simpledateformat類轉換成date實例date1,
date2
然後
calendar
cal1
=
calendar.getinstance();
calendar
cal2
=
calendar.getinstance();
cal1.settime(date1);
cal2.settime(date2);
這樣你就有版了兩個表示權所輸入日期的calendar實例了
calendar可以做很多事
比如用cal1.after(cal2)或者cal1.before(cal2)或者cal1.equals(cal2)或者cal1.compareto(cal2)來比較兩個日期時間先後
比如cal.get(calendar.year)可以得到表示該日期年份的整數
同理cal.get(calendar.month)可以得到月份
甚至可以用cal.gettimeinmillis()得到表示該日期的毫秒數
有了這些方法,簡單的計算之後就可以得到需要的相差的信息
如果樓主是來求現成的源代碼的-
-
我沒有
Ⅷ 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
Ⅸ java 中怎麼比較兩個時間相差的秒數
方法:
java 計算兩個時間相差可以用getTime()來獲得兩個時間的毫秒數,可以這樣計算得出兩個時間的秒數的相差如下:
public int calLastedTime(Date startDate) {long a = new Date().getTime();long b = startDate.getTime();int c = (int)((a - b) / 1000);return c;}
(9)java兩個時間比較擴展閱讀:
1、通過Date類來獲取當前時間
Date day=new Date();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(df.format(day));
2、通過System類中的currentTimeMillis方法來獲取當前時間
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println(df.format(System.currentTimeMillis()));
3、通過Calendar類來獲取當前時間
Calendar c = Calendar.getInstance();//可以對每個時間域單獨修改
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int date = c.get(Calendar.DATE);
System.out.println(year + "/" + month + "/" + date + " " +hour + ":" +minute + ":" + second);
4、 通過Date類來獲取當前時間
Date date = new Date();
String year = String.format("%tY", date);
String month = String.format("%tB", date);
String day = String.format("%te", date);
System.out.println("今天是:"+year+"-"+month+"-"+day);