当前位置:首页 » 编程语言 » java时间相减

java时间相减

发布时间: 2022-04-20 13:49:18

java 解决时间相减问题

//可以参照一下。

import java.text.ParseException;
import java.text.SimpleDateFormat;

public class JavaTest {

/**
* @param args
* @throws ParseException
*/
public static void main(String[] args) throws ParseException {
// TODO Auto-generated method stub
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.util.Date now = df.parse("2004-03-26 13:31:34");
java.util.Date date=df.parse("2004-01-02 11:30:53");
long l=now.getTime()-date.getTime();
long day=l/(24*60*60*1000);
long hour=(l/(60*60*1000)-day*24);
long min=((l/(60*1000))-day*24*60-hour*60);
long s=(l/1000-day*24*60*60-hour*60*60-min*60);
System.out.println(""+day+"天"+hour+"小时"+min+"分"+s+"秒");

}

}

❷ java实现两个时间相减得到年月

大概判断了一下,比较粗糙,仅供参考。
privatestaticvoidfunction17()throwsException{
Scannersc=newScanner(System.in);
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");
System.out.println("请输入起始时间");
Datedate1=sdf.parse(sc.next());
System.out.println("请输入截止时间");
Datedate2=sdf.parse(sc.next());
longtime1=date1.getTime();
longtime2=date2.getTime();
longtime=(time2-time1)/1000;
longyear=time/(24*3600*365);
longmonth=time%(24*3600*365)/(24*3600*30);
if(year>0){
System.out.println(year+"年"+month+"月");
}else{
System.out.println(month+"月");
}
}

❸ java 时间(Date)相减为何出现负数

你的问题其实跟日期没关系,你的问题其实可以描述为下面这样:
long diff = 2160000000;
int result = (int)(diff)/1000/60/60/24;
System.out.println(result);
为什么经过计算后result结果为负数,原因是因为在java语言中int类型的取值范围是:-2147483648~2147483647,而你给的long型的diff超出了2147483647的最大值,导致最高位符号位变成了1,于是经过强制类型转换(int)(diff)之后,已经就是一个负数了,所以除法运算的结果也就成了负数。而当diff等于2073600000的时候,这个值并没有超出int类型的范围,所以计算出的结果是正数

❹ java时间加减

Datedate=newDate("2014/1/1018:20");
Datedate2=newDate("2014/1/113:5");
longtemp=date2.getTime()-date.getTime();//相差毫秒数
longhours=temp/1000/3600;//相差小时数
longtemp2=temp%(1000*3600);
longmins=temp2/1000/60;//相差分钟数
System.out.println("date2与date相差"+hours+"小时"+mins+"分钟");



****************************************希望能够帮助到你!************************************************
如果我的回答对你有帮助,
别忘了点击我的回答下方【选为满意答案】按钮。
谢谢!

❺ java中日期怎么相减

呵呵,你这个错误犯得很好,因为偶曾经也犯过。

你去查查calendar的API,看看mouth是从几开始的,你写3进去,到底最终的日期是多少呢?

Calendarcalendar=Calendar.getInstance();
calendar.set(2015,3,1);
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");
System.out.println(sdf.format(calendar.getTime()));

看看结果啊,哈哈。

❻ java 如何将日期年份相减

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

public class Admin {

private static Format f = new SimpleDateFormat("yyyy-MM-dd");

public static void main(String... args) {

Date thisYear = new Date();
System.out.println(formatDate2YYYYMMDD(thisYear));

Date lastYear = lastYear(thisYear);
System.out.println(formatDate2YYYYMMDD(lastYear));
}

private static Date lastYear(Date thisYear) {
Calendar c = Calendar.getInstance();
c.setTime(thisYear);
c.add(Calendar.YEAR, -1);
return c.getTime();
}

private static String formatDate2YYYYMMDD(Date date) {
return f.format(date);
}
}

❼ java 中 日期如何相加减

这个东西很简单。
现在是2004-03-26 13:31:40
过去是:2004-01-02 11:30:24
要获得两个日期差,差的形式为:XX天XX小时XX分XX秒

方法一:
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

try
{
Date d1 = df.parse("2004-03-26 13:31:40");
Date d2 = df.parse("2004-01-02 11:30:24");
long diff = d1.getTime() - d2.getTime();
long days = diff / (1000 * 60 * 60 * 24);
}
catch (Exception e)
{
}

方法二:
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.util.Date now = df.parse("2004-03-26 13:31:40");
java.util.Date date=df.parse("2004-01-02 11:30:24");
long l=now.getTime()-date.getTime();
long day=l/(24*60*60*1000);
long hour=(l/(60*60*1000)-day*24);
long min=((l/(60*1000))-day*24*60-hour*60);
long s=(l/1000-day*24*60*60-hour*60*60-min*60);
System.out.println(""+day+"天"+hour+"小时"+min+"分"+s+"秒");

方法三:
SimpleDateFormat dfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.util.Date begin=dfs.parse("2004-01-02 11:30:24");
java.util.Date end = dfs.parse("2004-03-26 13:31:40");
long between=(end.getTime()-begin.getTime())/1000;//除以1000是为了转换成秒

long day1=between/(24*3600);
long hour1=between%(24*3600)/3600;
long minute1=between%3600/60;
long second1=between%60/60;
System.out.println(""+day1+"天"+hour1+"小时"+minute1+"分"+second1+"秒");

❽ 如何用JAVA把两个时间相减

调试过的程序,可以直接运行`!!!!!!

import java.util.Date;

import com.ibm.icu.text.SimpleDateFormat;

public class mss {

public mss() {
}

public long fromDateStringToLong(String inVal) { //此方法计算时间毫秒
Date date = null; //定义时间类型
SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-mm-dd hh:ss");
try {
date = inputFormat.parse(inVal); //将字符型转换成日期型
} catch (Exception e) {
e.printStackTrace();
}
return date.getTime(); //返回毫秒数
}

private static String dqsj() { //此方法用于获得当前系统时间(格式类型2007-11-6 15:10:58)
Date date = new Date(); //实例化日期类型
String today = date.toLocaleString(); //获取当前时间
System.out.println("获得当前系统时间 "+today); //显示
return today; //返回当前时间
}

public static void main(String[] args) {
String dqsj = dqsj(); //获得String dqsj = dqsj(); //获得当前系统时间
mss df = new mss(); //实例化方法

long startT=df.fromDateStringToLong("2005-03-03 14:51:23"); //定义上机时间
long endT=df.fromDateStringToLong("2004-03-03 13:50:23"); //定义下机时间

long ss=(startT-endT)/(1000); //共计秒数
int MM = (int)ss/60; //共计分钟数
int hh=(int)ss/3600; //共计小时数
int dd=(int)hh/24; //共计天数

System.out.println("共"+dd+"天 准确时间是:"+hh+" 小时 "+MM+" 分钟"+ss+" 秒 共计:"+ss*1000+" 毫秒");

}

}

这是执行结果``

获得当前系统时间 2007-11-6 15:57:39
共366天 准确时间是:8785 小时 527100 分钟31626001 秒 共计:31626001000 毫秒

热点内容
ftputility哪里下载 发布:2024-05-05 03:47:13 浏览:999
雷凌运动版如何连接安卓手机导航 发布:2024-05-05 03:42:48 浏览:266
自动鬼使黑脚本 发布:2024-05-05 03:10:49 浏览:880
游戏脚本编程书籍推荐 发布:2024-05-05 02:59:13 浏览:72
编译器书籍推荐 发布:2024-05-05 02:57:02 浏览:56
电池存储温度 发布:2024-05-05 02:53:07 浏览:207
安卓在美国怎么下载 发布:2024-05-05 02:31:06 浏览:925
黑莓存储空间 发布:2024-05-05 02:19:50 浏览:275
我的世界矿石岛服务器宣传片 发布:2024-05-05 02:17:19 浏览:614
如何区分安卓原装充电器 发布:2024-05-05 01:41:23 浏览:72