Java中如何将如何实现一个自定义日期与当前系统日期相减并等到结果?

举个例子,比如说我自定义的日期是2010年4月13日20时35分09秒,当前系统日期是2010年5月26日13时42分34秒。要算出当前系统日期的时间减去,我自定义的时间... 举个例子,比如说我自定义的日期是2010年4月13日20时35分09秒,当前系统日期是2010年5月26日13时42分34秒。要算出当前系统日期的时间减去,我自定义的时间,并得出结果,结果也为yyyyMMdd hh:mm:ss的形式。请高手指教,采纳后追加分数。谢谢。
请给出代码。
展开
 我来答
corruptsatan
2010-05-26 · TA获得超过1108个赞
知道小有建树答主
回答量:473
采纳率:0%
帮助的人:618万
展开全部
//时间差如何能算出月呢???只能说是差几天几个小时多少分钟多少秒吧!!除非规定30天为一个月,365天为一年,才可以的。
我算出了差几天几个小时多少分钟多少秒,具体多少天算一个月,自己添加吧。

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

/**
* @author ww
*
*/
public class DateSub {

/**
*
* @param args
* @throws ParseException
*/
public static void main(String[] args) throws ParseException {
// TODO Auto-generated method stub
String date = "2010-4-13 20:35:09";
DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

System.out.println(subSystemTime(df.parse(date)));
}

/**
* 一个自定义日期与当前系统日期相减
*
* @param date 自定义日期
* @return
*/
public static String subSystemTime(Date date){
StringBuilder sb = new StringBuilder();

long year,month,day,hour,minute,second;

long milliSecondSub = date.getTime()-System.currentTimeMillis();

if(milliSecondSub<0){
milliSecondSub = -milliSecondSub;
sb.append("-");
}

second = milliSecondSub/1000%60;
minute = milliSecondSub/1000/60%60;
hour = milliSecondSub/1000/60/60%24;
day = milliSecondSub/1000/60/60/24;

sb.append(day).append("天").append(hour).append("小时").append(minute).append("分钟").append(second).append("秒");

return sb.toString();
}
}
百度网友1c23319
2015-08-09 · TA获得超过126个赞
知道小有建树答主
回答量:85
采纳率:0%
帮助的人:55.1万
展开全部
将自定义日期和当前日期都转换成Date对象,然后用getTimes()获取毫秒数,用毫秒数做运算,可以算出两者的毫秒差
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
w1985g
2010-05-26 · TA获得超过1633个赞
知道小有建树答主
回答量:1190
采纳率:100%
帮助的人:1039万
展开全部
//拿去参考吧,只能算出相差几天几小时几分钟几秒,差几个月就不好算了

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

public class Test {
// 一天的毫秒数 60*60*1000*24
private final static long DAY_MILLIS = 86400000;

// 一小时的毫秒数 60*60*1000
private final static long HOUR_MILLIS = 3600000;

// 一分钟的毫秒数 60*1000
private final static long MINUTE_MILLIS = 60000;

//日期格式化串
private final static SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

public static void main(String[] args) throws Exception{
// 开始时间
Date startdate = DATE_FORMAT.parse("2010-01-01 08:01:00");
// 结束时间
Date enddate = DATE_FORMAT.parse("2010-01-03 00:00:00");

showTimedif(startdate, enddate);
}

public static void showTimedif(Date start, Date end) {
show(start.getTime(),end.getTime());
}

/**
* 计算两个日期相差的天、小时、分钟
*
* @param start
* @param end
*/
public static void show(long start, long end) {
long temp = end - start;
System.out.print(DATE_FORMAT.format(new Date(start)) + " 与 " + DATE_FORMAT.format(new Date(end)));
System.out.println("相差" + temp / DAY_MILLIS + "天" +
(temp % DAY_MILLIS)/ HOUR_MILLIS + "小时" +
((temp % DAY_MILLIS) % HOUR_MILLIS)/ MINUTE_MILLIS + "分"+
((temp % DAY_MILLIS) % HOUR_MILLIS)% MINUTE_MILLIS/1000+"秒");
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kuailehaole
2010-05-26 · TA获得超过207个赞
知道小有建树答主
回答量:271
采纳率:0%
帮助的人:74.7万
展开全部
先定义
java.text.SimpleDateFormat sdf1 = new java.text.SimpleDateFormat("yyyyMMdd hh:mm:ss");
Data sysdate = new java.util.Date();
Date date;
Date youdate;
youdate = "20100113 203509";
date = sdf1.format(sysdate - sdf1.parse(youdate))
这个date就是你要的时间
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
千羽千寻online
2015-07-30 · TA获得超过645个赞
知道小有建树答主
回答量:735
采纳率:37%
帮助的人:181万
展开全部
DATE类型里面有方法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式