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的形式。请高手指教,采纳后追加分数。谢谢。
请给出代码。 展开
请给出代码。 展开
5个回答
展开全部
//时间差如何能算出月呢???只能说是差几天几个小时多少分钟多少秒吧!!除非规定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();
}
}
我算出了差几天几个小时多少分钟多少秒,具体多少天算一个月,自己添加吧。
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();
}
}
展开全部
将自定义日期和当前日期都转换成Date对象,然后用getTimes()获取毫秒数,用毫秒数做运算,可以算出两者的毫秒差
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//拿去参考吧,只能算出相差几天几小时几分钟几秒,差几个月就不好算了
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+"秒");
}
}
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+"秒");
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先定义
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就是你要的时间
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就是你要的时间
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
DATE类型里面有方法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询