JAVA中时间大小比较

kudonet 2010-08-09 09:23:05
某个时间点 比如 2010-08-05 想用 系统当前时间 与 前面那个时间点24小时后 的时间进行比较

小弟不才 忘高手把代码贴给我
...全文
5750 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
yinxiaoqi 2010-08-10
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 kudonet 的回复:]
引用 9 楼 yinxiaoqi 的回复:

引用楼主 kudonet 的回复:
某个时间点 比如 2010-08-05 想用 系统当前时间 与 前面那个时间点24小时后 的时间进行比较

小弟不才 忘高手把代码贴给我

LZ 把你的意思 在说清楚点,有点不明白 你是不会比较时间呢,还是逻辑问题呢?


逻辑问题?? 某个时间 往后加 24h 与现在系统时间做个比较 就这样
[/Quote]
能具体 来个例子吗?
a451274642 2010-08-09
  • 打赏
  • 举报
回复
import java.util.Date;
import java.text.DateFormat;
import java.text.ParseException;
import java.util.Calendar;
public class B
{
public static void main(String[]arg)
{
long i=0;
String b="2010-08-05";//某个时间点
DateFormat df = DateFormat.getDateInstance(); //创建DateFormat对象初始化为系统当前值
Calendar r = Calendar.getInstance();
Calendar r1 = Calendar.getInstance();//创建Calendar对象初始化为系统当前值
try{
Date f=df.parse(b);//将字符串转化成Date形式
//System.out.print(f);
r.setTime(f);//用获得的Date设置r
r.add(Calendar.HOUR_OF_DAY, 24);//某时间点24小时后的时间的Calendar对象
Date t=r.getTime();
System.out.println(t);
i=r1.getTimeInMillis()-r.getTimeInMillis();//进行比较,两者具体相差多少毫秒
System.out.println(i);
i=r1.compareTo(r);//比较两个时间的先后r1是当前时间 r是你指定的时间
if(i==0)System.out.println("ri=r");
if(i<0)System.out.println("ri<r");
if(i>0)System.out.println("ri>r");
}

catch (ParseException e){
System.out.print("失败");
}
}


}

看上去很多 其实实际内容就一点点 运行过 你可以改成自己的类
aixgd 2010-08-09
  • 打赏
  • 举报
回复
不太明白
wuzhen8449397 2010-08-09
  • 打赏
  • 举报
回复
不错,留着以后用得着
madFatso 2010-08-09
  • 打赏
  • 举报
回复
public static int dateCompare(String date){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
try {
cal.setTime(sdf.parse(date));
} catch (ParseException e) {
e.printStackTrace();
}
cal.roll(Calendar.DAY_OF_MONTH, 1);
return cal.getTime().compareTo(new Date());
}
madFatso 2010-08-09
  • 打赏
  • 举报
回复

public static int dateCompare(String date){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
try {
cal.setTime(sdf.parse(date));
} catch (ParseException e) {
e.printStackTrace();
}
cal.roll(Calendar.DAY_OF_MONTH, 1);
return cal.getTime().compareTo(new Date());
}
学习Java中 2010-08-09
  • 打赏
  • 举报
回复

SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
String str = "2010-08-09 ";
//系统当前时间
Calendar cal = Calendar.getInstance();

//比较时间
Calendar cal1 = Calendar.getInstance();
cal1.setTime(sf.parse(str));
//减去1天
cal1.add(Calendar.DAY_OF_MONTH, -1);
//比较
System.out.println(sf.parse(sf.format(cal.getTime())).compareTo(cal1.getTime()));

neverloseming 2010-08-09
  • 打赏
  • 举报
回复
代码不在这台机器上,所以无法贴给你。。
大致思路吧:获得系统的时间,用date.getTime(),返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
然后将前面的那个时间也转成用毫秒数表示的long型数据,加上24*3600*1000(一天)
之后就可以比较了!
sbps2134165 2010-08-09
  • 打赏
  • 举报
回复
顶一下吧,俺也不会,学习
han_chengroy 2010-08-09
  • 打赏
  • 举报
回复
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Date date = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String dateStr = format.format(date);
double n = computeTime(dateStr, "2010-08-09 12:41:41");
System.out.println(n);

}


//比较两个时间的大小

public static double computeTime(String current, String target) {
double sa;
double h=0;
String old = target;
int old_yyyy = Integer.parseInt(old.substring(0, 4));
int old_mm = Integer.parseInt(old.substring(5, 7));
int old_dd = Integer.parseInt(old.substring(8, 10));
int old_hh = Integer.parseInt(old.substring(11, 13));
int old_mi = Integer.parseInt(old.substring(14, 16));
int old_ss = Integer.parseInt(old.substring(17, 19));
String now = current;
int now_yyyy = Integer.parseInt(now.substring(0, 4));
int now_mm = Integer.parseInt(now.substring(5, 7));
int now_dd = Integer.parseInt(now.substring(8, 10));
int now_hh = Integer.parseInt(now.substring(11, 13));
int now_mi = Integer.parseInt(now.substring(14, 16));
int now_ss = Integer.parseInt(now.substring(17, 19));
GregorianCalendar gcOld = new GregorianCalendar(
old_yyyy-1900,old_mm-1,old_dd,old_hh,old_mi,old_ss);

GregorianCalendar gcNow = new GregorianCalendar(
now_yyyy-1900,now_mm-1,now_dd,now_hh,now_mi,now_ss);


gcOld.add(Calendar.DAY_OF_MONTH, 1); //24H 后

sa =(gcNow.getTimeInMillis() - gcOld.getTimeInMillis());
h = (sa/(60*60*1000));
return h;
}
kudonet 2010-08-09
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 yinxiaoqi 的回复:]

引用楼主 kudonet 的回复:
某个时间点 比如 2010-08-05 想用 系统当前时间 与 前面那个时间点24小时后 的时间进行比较

小弟不才 忘高手把代码贴给我

LZ 把你的意思 在说清楚点,有点不明白 你是不会比较时间呢,还是逻辑问题呢?
[/Quote]

逻辑问题?? 某个时间 往后加 24h 与现在系统时间做个比较 就这样
joy_liut 2010-08-09
  • 打赏
  • 举报
回复
5楼的实现是正解;
不过在实现“减去1天”的时候roll()方法有问题,应该用3楼的方式:
cal.add(Calendar.DAY_OF_MONTH, 1);(不过第二个参数为1)
好吃的松子 2010-08-09
  • 打赏
  • 举报
回复
(d1.getTime()+24*60*60*1000)-d2.getTime()


yinxiaoqi 2010-08-09
  • 打赏
  • 举报
回复
[Quote=引用楼主 kudonet 的回复:]
某个时间点 比如 2010-08-05 想用 系统当前时间 与 前面那个时间点24小时后 的时间进行比较

小弟不才 忘高手把代码贴给我
[/Quote]
LZ 把你的意思 在说清楚点,有点不明白 你是不会比较时间呢,还是逻辑问题呢?

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧