当前位置:首页 » 编程语言 » java比较时间

java比较时间

发布时间: 2022-08-03 05:15:51

A. java计算两个日期时间相差几天,几小时,几分钟等

思路是先计算两个日期相差的毫秒数,然后分别根据每天的毫秒数、每小时的毫秒数、每分钟的毫秒数来计算相差几天,几小时,几分钟。具体代码如下:

public static String getDatePoor(Date endDate, Date nowDate) {

long nd = 1000 * 24 * 60 * 60;//每天毫秒数

long nh = 1000 * 60 * 60;//每小时毫秒数

long nm = 1000 * 60;//每分钟毫秒数

long diff = endDate.getTime() - nowDate.getTime();// 获得两个时间的毫秒时间差异

long day = diff / nd; // 计算差多少天

long hour = diff % nd / nh;// 计算差多少小时

long min = diff % nd % nh / nm; // 计算差多少分钟

return day + "天" + hour + "小时" + min + "分钟";

}

然后做一个测试,调用这个方法测试一下:

可以看出两个日期时间相差几天,几小时,几分钟都可以算出来。

(1)java比较时间扩展阅读:

Java使用以下三种方法来比较两个日期:

1、使用 getTime() 方法获取两个日期(自1970年1月1日经历的毫秒数值),然后比较这两个值。

2、使用方法 before(),after() 和 equals()。例如,一个月的12号比18号早,则 new Date(99, 2, 12).before(new Date (99, 2, 18)) 返回true。

3、使用 compareTo() 方法,它是由 Comparable 接口定义的,Date 类实现了这个接口。

B. 如何用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()得到表示该日期的毫秒数
有了这些方法,简单的计算之后就可以得到需要的相差的信息
如果楼主是来求现成的源代码的-
-
我没有

C. Java比较两个时间相差多少天,多少个月,多少年

java比较两个时间相差,可以使用calender类的api,实例如下:
package com.test;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
* @description 日期比较天 月 年
* @author www.javawind.net
*/

public class DateTest {

public static void main(String[] args) {
String date = "2008-06-12";

DateTest.compareDate(date, null, 0);
DateTest.compareDate(date, null, 1);
DateTest.compareDate(date, null, 2);

date = "2006-06-03";
DateTest.compareDate(date, null, 0);
DateTest.compareDate(date, null, 1);
DateTest.compareDate(date, null, 2);
DateTest.compareDate(date, "2009-06-01", 0);
DateTest.compareDate(date, "2009-06-01", 1);
DateTest.compareDate(date, "2009-06-01", 2);
}

/**
* @param date1 需要比较的时间 不能为空(null),需要正确的日期格式
* @param date2 被比较的时间 为空(null)则为当前时间
* @param stype 返回值类型 0为多少天,1为多少个月,2为多少年
* @return
*/
public static int compareDate(String date1,String date2,int stype){
int n = 0;

String[] u = {"天","月","年"};
String formatStyle = stype==1?"yyyy-MM":"yyyy-MM-dd";

date2 = date2==null?DateTest.getCurrentDate():date2;

DateFormat df = new SimpleDateFormat(formatStyle);
Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
try {
c1.setTime(df.parse(date1));
c2.setTime(df.parse(date2));
} catch (Exception e3) {
System.out.println("wrong occured");
}
//List list = new ArrayList();
while (!c1.after(c2)) { // 循环对比,直到相等,n 就是所要的结果
//list.add(df.format(c1.getTime())); // 这里可以把间隔的日期存到数组中 打印出来
n++;
if(stype==1){
c1.add(Calendar.MONTH, 1); // 比较月份,月份+1
}
else{
c1.add(Calendar.DATE, 1); // 比较天数,日期+1
}
}

n = n-1;

if(stype==2){
n = (int)n/365;
}

System.out.println(date1+" -- "+date2+" 相差多少"+u[stype]+":"+n);
return n;
}

/**
* 得到当前日期
* @return
*/
public static String getCurrentDate() {
Calendar c = Calendar.getInstance();
Date date = c.getTime();
SimpleDateFormat simple = new SimpleDateFormat("yyyy-MM-dd");
return simple.format(date);

}
}
运行结果:
2008-06-12 -- 2009-06-09 相差多少天:362
2008-06-12 -- 2009-06-09 相差多少月:12
2008-06-12 -- 2009-06-09 相差多少年:0
2006-06-03 -- 2009-06-09 相差多少天:1102
2006-06-03 -- 2009-06-09 相差多少月:36
2006-06-03 -- 2009-06-09 相差多少年:3
2006-06-03 -- 2009-06-01 相差多少天:1094
2006-06-03 -- 2009-06-01 相差多少月:36
2006-06-03 -- 2009-06-01 相差多少年:2
可以参考上面的程序,如果还有什么不明白的,可以自己去ITjob网上看看,有介绍Java这方面的知识。

D. java中如何进行时间比较

try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String aa = "2012-1-12";
String bb = "2010-12-01";
Calendar cal = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
cal.setTime(sdf.parse(aa));
cal2.setTime(sdf.parse(bb));
//
cal.add(Calendar.MONTH, 3);
if (cal.after(cal2)) {
System.out.println("aa + 3个月 在 bb 之后" );
}

cal.setTime(sdf.parse(aa));
cal.add(Calendar.DATE, 5);
if (cal.after(cal2)) {
System.out.println("aa + 5天 在 bb 之后" );
}

} catch (Exception e) {

}

E. 在java的程序里date类型怎么比较大小呀

有两个方法:

方法一:

两个Date类型的变量可以通过compareTo方法来比较。此方法的描述是这样的:如果参数 Date 等于此 Date,则返回值 0;如果此 Date 在 Date 参数之前,则返回小于 0 的值;如果此 Date 在 Date 参数之后,则返回大于 0 的值。

(5)java比较时间扩展阅读:

Date类可以在java.util包中找到,用一个long类型的值表示一个指定的时刻。它的一个有用的构造函数是Date(),它创建一个表示创建时刻的对象。

getTime()方法返回Date对象的long值。在下面的程序中,我使用Date()构造函数创建一个表示程序运行时刻的对象,并且利用getTime()方法找到这个日期代表的毫秒数量:

import java.util.*;

public class Now {

public static void main(String[] args) {

Date now = new Date();

long nowLong = now.getTime();

System.out.println("Value is " + nowLong);

}

}

F. Java中如何比较时间(小时/分/秒)的大小

有两个包里有日期的类型,不知道楼主想用哪个?java.util.Date和java.sql.Timestamp两都可以,后面是面对数据库的,before(),after(),equals()就可以比较两个时间之间的关系了!

××××××××××××××××××××××××××××××××××××××××××××

SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.util.Date nows=new java.util.Date();
java.util.Date date=dateFormat.parse("2005-09-12 12:36:29");
long hous=(nows.getTime()-date.getTime())/(60*60*1000);
转换成long在比较 可以得到日期相差的时间

×××××××××××××××××××××××××××××××××××××××××××××

date1, date2;

long l1=date1.getTime();
long l2=date2.getTime();
if(l1>l2)
{
//说明date1比较新
}
else if(l1 == l2)
{
//说明date1和date2一样
}
else
{
//说明date2比较新
}

×××××××××××××××××××××××××××××××××××××××××

SimpleDateFormat dateFormat=new SimpleDateFormat(sPatten);
String sText = dateFormat.format(dateValue);

得到sText后你爱怎么比就怎么比呀
sPatten =“yyyy” 取年
sPatten =“MM” 取月
sPatten =“dd” 取日
sPatten =“HH” 取小时
sPatten =“mm” 取分
sPatten =“ss” 取秒
××××××××××××××××××××××××××××××××××××××××××

Date date1 = .....
Date date2 = .....
Calendar cal = Calendar.getInstance();
cal.setTime(date1);
int n1 = Calendar.get(Calendar.DATE);
cal.setTime(date2);
int n2= Calendar.get(Calendar.DATE);
if (n1 == n2) {
}
......

G. java如何比较具体时间

给你点思路吧

比如你要用2008-03-15和今天比较
1、取出两个时间来,如果是从数据库取出,最好使用java.sql.Timestamp格式的时间,现在时间为:Date now = new Date() ;
2、将取出的两个时间进行格式化:使用java.text.SimpleDateFormat
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd") ;//将日期格式化为:yyyy-MM-dd
String n = formatter.format(now) ; // 将当前时间进行格式化

3、比较:使用String类型的比较:compareTo // 看API
如:数据库取出的时间如果是String类型的话,直接使用就行
如果取出的时间是Timestamp类型,将其转化成String类型
formatter.format(数据库的timestamp类型).compareTo(n);

以上是基本的一些操作,LZ可以根据自己的需求来改,我的主要的思路就是通过String 类型进行比较

H. 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()

(8)java比较时间扩展阅读:

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。

Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。

I. java代码中怎么比较时间的大小

比较getTime获取的整数值大小即可,整数值大的时间就大,整数值小的时间就小

例如:

publicintcompareDate(Dated1,Dated2){
if(dt1.getTime()>dt2.getTime()){
System.out.println("dt1在dt2前");
return1;
}elseif(dt1.getTime()<dt2.getTime()){
System.out.println("dt1在dt2后");
return-1;
}else{//相等
return0;
}
}



还有:

importjava.text.SimpleDateFormat;
importjava.util.Date;

publicclassDate_Test{

publicstaticvoidmain(String[]args){
Dated1=newDate();//第一个时间
Dated2=newDate();//第二个时间
SimpleDateFormatf=newSimpleDateFormat("hhmmss");//格式化为hhmmss
intd1Number=Integer.parseInt(f.format(d1).toString());//将第一个时间格式化后转为int
intd2Number=Integer.parseInt(f.format(d2).toString());//将第二个时间格式化后转为int
if(d1Number>d2Number){
System.out.println("时间d1大");
System.out.println(d1Number);
}
else{
System.out.println("时间d2大");
System.out.println(d2Number);
}
}

}

J. Java怎样比较两个时间的大小

比较getTime获取的整数值大小即可,整数值大的时间就大,整数值小的时间就小

例如:

publicintcompareDate(Dated1,Dated2){
if(dt1.getTime()>dt2.getTime()){
System.out.println("dt1在dt2前");
return1;
}elseif(dt1.getTime()<dt2.getTime()){
System.out.println("dt1在dt2后");
return-1;
}else{//相等
return0;
}
}
热点内容
惠普畅游人14是什么配置表 发布:2025-01-23 05:57:39 浏览:295
简单搭建ftp服务器 发布:2025-01-23 05:49:41 浏览:227
有qq号没密码如何登上 发布:2025-01-23 05:34:08 浏览:469
javajsdes加密 发布:2025-01-23 05:33:21 浏览:770
qq怎么上传视频到电脑上 发布:2025-01-23 05:07:27 浏览:972
如何申请i7服务器地址 发布:2025-01-23 04:42:15 浏览:848
浏览器内核源码 发布:2025-01-23 04:41:34 浏览:662
精英版缤智少了些什么配置 发布:2025-01-23 04:41:30 浏览:359
编写c编译器 发布:2025-01-23 04:41:30 浏览:971
可以解压war包的编译软件 发布:2025-01-23 04:38:28 浏览:989