如何计算老化提供的两个日期?

时间:2016-04-01 10:21:50

标签: java android simpledateformat date-difference

我试图在我的应用程序中实现此逻辑,我必须计算老化过程。

我将动态地将日期与时间一起作为字符串 例如,它将类似于

String due_date = "2016-03-27 00:00:00"

要查找两个日期之间的天数,我有以下代码

SimpleDateFormat format1 = new SimpleDateFormat("dd-MM-yyyy HH-mm-ss");
Date dt1 = format1.parse("due_date");

但问题是我无法这样做,因为我得到了一个解析异常。

所以,

  1. 如何解析字符串due_date?
  2. 如何从due_date中减去当前日期以获取两个日期之间的天数?

2 个答案:

答案 0 :(得分:3)

  

我怎样才能解析字符串due_date?

您应该使用以下格式:

SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date dueDate = format1.parse(due_date);
  

如何从due_date中减去当前日期以获取两天之间的天数?

你应该写下这样的方法:

public static int getDaysBetweenDates(Date fromDate, Date dueDate) {
    return (int) ((dueDate.getTime() - fromDate.getTime()) / (1000 * 60 * 60 * 24L));
}

并像这样使用它:

String from_date = "2016-03-26 00:00:00";
String due_date = "2016-03-27 00:00:00";

SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date fromDate = format1.parse(from_date);
Date dueDate = format1.parse(due_date);

System.out.println(getDaysBetweenDates(fromDate, dueDate));//prints "1"

答案 1 :(得分:1)

  

获得两个日期之间的总天数的两种方法

  • 使用日期类

public static int getDaysDifference(Date fromDate,Date toDate) { if(fromDate==null||toDate==null) return 0; return (int)( (toDate.getTime() - fromDate.getTime()) / (1000 * 60 * 60 * 24)); }

  • 使用日历

public static int getDaysDifference(Calendar calendar1,Calendar calendar2) { if(calendar1==null||calendar2==null) return 0; return (int)( (calendar2.getTimeInMillis() - calendar1.getTimeInMillis()) / (1000 * 60 * 60 * 24)); } 要格式化日期,请关注@Cootri答案。 :)