java两个日期的天数
1. java中怎么计算两个日期之间的天数
java.text.SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
// java.util.Calendar calendar = Calendar.getInstance();
//
// Date today = sdf.parse(sdf.format(new Date())); //将今天的日期格式化成 yyyy-MM-dd
// Date chooseDate = sdf.parse("2015-10-01"); //将选择是日期转换成Date
// long t = chooseDate.getTime() - today.getTime(); //计算两个日期的时间差
// long d = t / (1000 * 60 * 60 * 24); //计算两个日期相差的天数
2. 如何用java计算两个日期之间的天数
手头没有编码的工具,只能给你一个思路了。
先把两个日期分别设置到两个Date(java.util.Date)里。然后用getTime函数取得两者的毫秒数,两者之差除以一天的毫秒数(8640000)即为两个日期之间天数。
3. java中知道两个日期如何获得两个日期之间的天数
importjava.text.ParseException;
importjava.text.SimpleDateFormat;
importjava.util.Calendar;
importjava.util.Date;
publicclassTest{
publicstaticvoidmain(String[]args){
try{
//时间转换类
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");
Datedate1=sdf.parse("2014-1-10");
Datedate2=sdf.parse("2012-12-20");
//将转换的两个时间对象转换成Calendard对象
Calendarcan1=Calendar.getInstance();
can1.setTime(date1);
Calendarcan2=Calendar.getInstance();
can2.setTime(date2);
//拿出两个年份
intyear1=can1.get(Calendar.YEAR);
intyear2=can2.get(Calendar.YEAR);
//天数枣哗
intdays=0;
Calendarcan=null;
//如果can1<can2
//减去小的时间在这一年已经过了的天数
//加上大的时间已过的天数
if(can1.before(can2)){
days-=can1.get(Calendar.DAY_OF_YEAR);
days+=can2.get(Calendar.DAY_OF_YEAR);
can=can1;
}else{
days-=can2.get(Calendar.DAY_OF_YEAR);
days+=can1.get(Calendar.DAY_OF_YEAR);
can=can2;
}
for(inti=0;历腊i<Math.abs(year2-year1);i++){
//获取小的时间当前年的总天数
days+=凳烂行can.getActualMaximum(Calendar.DAY_OF_YEAR);
//再计算下一年。
can.add(Calendar.YEAR,1);
}
System.out.println("天数差:"+days);
}catch(ParseExceptione){
e.printStackTrace();
}
}
}
Console:
天数差:386
4. 怎么求java,2个日期之间有多少天。。
用毫秒数计算已经不是正确方法了。原因是大销携夏令时间会造成计算错误。差一小时就是差一天。如果对这方面有疑问,可以补充问题,我再详细解答。
虽然在国内运用没有问题滚伏,但是如果用于国际化的金融系统就不行了。
所以建议你在学习阶段就认知,现代标准就是尽量不要使用毫秒数计算日期。
以下是斗渗正确方法:
public static long daysBetween(Calendar startDate, Calendar endDate) {
Calendar date = (Calendar) startDate.clone();
long daysBetween = 0;
while (date.before(endDate)) {
date.add(Calendar.DAY_OF_MONTH, 1);
daysBetween++;
}
return daysBetween;
}
5. java中如何计算出两个日期之间相差多少天
思路就是根据它们相差的毫秒数除以每天的毫秒数(60*60*24*1000),代码如下:
public static void main(String[] args) throws ParseException {
String date1="1987-01-01";
String date2="2010-01-01";
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-mm-dd");
Date d1=sdf.parse(date1);
Date d2=sdf.parse(date2);
long daysBetween=(d2.getTime()-d1.getTime()+1000000)/(60*60*24*1000);
System.out.println("1987-01-01 与 2010-01-01 相隔 "+daysBetween+" 天");
}
运行结果如下:
(5)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 类实现了这个接口。
SimpleDateFormat 是一个以语言环境敏感的方式来格式化和分析日期的类。SimpleDateFormat 允许你选择任何用户自定义日期时间格式来运行
例如:
SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd hh:mm:ss");
这一行代码确立了转换的格式,其中 yyyy 是完整的公元年,MM 是月份,dd 是日期,HH:mm:ss 是时、分、秒。
注意:有的格式大写,有的格式小写,例如 MM 是月份,mm 是分;HH 是 24 小时制,而 hh 是 12 小时制。
以上实例编译运行结果如下:
当前时间为: 2018-09-14 10:16:34
菜鸟教程-Java 日期时间
6. java怎么算两个datetime之间的天数,分别是哪天
Date类大多已过时,要用Calender替代
Calender c=Calender.getInstance();
Date d=c.getTime();//这个相当于new Date(),当前日期仿桥
昨天的日期:
c.add(Calender.DAY_OF_MONTH,-1);
Date d=c.getTime();
明天的日期:
c.add(Calender.DAY_OF_MONTH,1);
Date d=c.getTime();
上个月的日期:
c.add(Calender.MONTH,-1);
Date d=c.getTime();
去年的日期:
c.add(Calender.YEAR,-1);
Date d=c.getTime();
单独迅大虚获取年、月、日、亩燃小时等:
int year=c.get(Calender.YEAR);
int month=c.get(Calender.MONTH);
int day=c.get(Calender.DAY_OF_MONTH);
int hour=c.get(Calender.HOUR_OF_DAY);//这个是24小时制
int hour=c.get(Calender.HOUR);//这个是12小时制
计算两个日期间的天数
SimpleDateFormat df=new SimpleDateFormat(“yyyy-MM-dd”);
Date date1=df.parse(“2014-02-02”);
Date date2=df.parse(“2014-01-02”);
Longdays=(date1.getTime()-date2.getTime)/(24*60*60*1000)
7. java计算两日期间隔天数
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;public class CompareTime { public static void main(String[] args) {
String t1 = "1990-1-1";
String t2 = "2000-1-1"; try {
System.out.println(CompareTime.getBetweenDays(t1, t2));
} catch (ParseException e) {
e.printStackTrace();
}
} public static int getBetweenDays(String t1, String t2)
throws ParseException {
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
int betweenDays = 0;
Date d1 = format.parse(t1);
Date d2 = format.parse(t2);
Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
c1.setTime(d1);
c2.setTime(d2);
// 保证第二个时间一定大于第一个时余卖间
if (c1.after(c2)) {
c1 = c2;
c2.setTime(d1);
}
int betweenYears = c2.get(Calendar.YEAR) - c1.get(Calendar.YEAR);
betweenDays = c2.get(Calendar.DAY_OF_YEAR)
- c1.get(Calendar.DAY_OF_YEAR);
for (int i = 0; i <银罩 betweenYears; i++) {
c1.set(Calendar.YEAR, (c1.get(Calendar.YEAR) + 1));
betweenDays += c1.getMaximum(Calendar.DAY_OF_YEAR);
}
return betweenDays;
}} 这个应该可以的,以前用过,锋毁闹试试看
8. 用java编写,两个日期之间相差的天数,求具体解法
DateFormatdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");
try
{
Dated1=df.parse("2004-03-2613:31:40");
Dated2=df.parse("2004-01-0211:30:24");
longdiff=d1.getTime()-d2.getTime();//这样得到的差值是微秒级别
longdays=diff/(1000*60*60*24);
longhours=(diff-days*(1000*60*60*24))/(1000*60*60);
longminutes=(diff-days*(1000*60*60*24)-hours*(1000*60*60))/(1000*60);
System.out.println(""+days+"天"+hours+"小时"+minutes+"分"侍茄);
}
catch(Exceptione)
{
}
d1 d2就是2个日期,打印出来的是天 小时告燃 和分 你可以自己转换一老友察下变成天
9. java怎么计算两个日期相差几天
java可以使用计算日期的天数差,以下是详细代码:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class test16 {
/**
* @param args
* @throws ParseException
*/
public static void main(String[] args) throws ParseException {
// TODO Auto-generated method stub
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d1=sdf.parse("2012-09-08 10:10:10");
Date d2=sdf.parse("2012-09-15 00:00:00");
System.out.println(daysBetween(d1,d2));
System.out.println(daysBetween("2012-09-08 10:10:10","2012-09-15 00:00:00"));
}
/**
* 计算两个日期之间相差的天数
* @param smdate 较小的时间
* @param bdate 较大的时间
* @return 相差天数
* @throws ParseException
*/
public static int daysBetween(Date smdate,Date bdate) throws ParseException
{
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
smdate=sdf.parse(sdf.format(smdate));
bdate=sdf.parse(sdf.format(bdate));
Calendar cal = Calendar.getInstance();
cal.setTime(smdate);
long time1 = cal.getTimeInMillis();
cal.setTime(bdate);
long time2 = cal.getTimeInMillis();
long between_days=(time2-time1)/(1000*3600*24);
return Integer.parseInt(String.valueOf(between_days));
}
/**
*字符串的日期格式的计算
*/
public static int daysBetween(String smdate,String bdate) throws ParseException{
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
cal.setTime(sdf.parse(smdate));
long time1 = cal.getTimeInMillis();
cal.setTime(sdf.parse(bdate));
long time2 = cal.getTimeInMillis();
long between_days=(time2-time1)/(1000*3600*24);
return Integer.parseInt(String.valueOf(between_days));
}
}