使用 joda time api 计算两个日期之间的天数
Calculating the number of days between two dates using joda time api
我有两个约会对象。我从这样的数据库中获取日期:-
Date d = new Date();
Date dTarget = finance.getTargetDate();
目前我的 d 是 2017-12-29
并且 dTarget 是 2017-12-31
现在我正在尝试使用 Joda 时间 api 计算它们之间的天数。我希望天数为 2,但目前我得到的是 1,我认为这是不正确的。
我的时区是UTC+5:45
//joda initital datetime
DateTime intdt = new DateTime(new Date());
DateTime targetDt = new DateTime(dTarget);
int noOfDays = Days.daysBetween(intdt,targetDt).getDays();
System.out.println(noOfDays);
我是否正确找到了两个日期之间的差异?为什么在这种情况下不显示 2?
SimpleDateFormat myFormat = new SimpleDateFormat("dd MM yyyy");
String inputString1 = "23 01 1997";
String inputString2 = "27 04 1997";
try {
Date date1 = myFormat.parse(inputString1);
Date date2 = myFormat.parse(inputString2);
long diff = date2.getTime() - date1.getTime();
System.out.println ("Days: " + TimeUnit.DAYS.convert(diff, TimeUnit.MILLISECONDS));
} catch (ParseException e) {
e.printStackTrace();
}
使用这个
Days.daysBetween(intdt.toLocalDate(), targetDt.toLocalDate()).getDays()
LocalDate
class 不存储或表示时间或时区。相反,它是对日期的描述。
我有两个约会对象。我从这样的数据库中获取日期:-
Date d = new Date();
Date dTarget = finance.getTargetDate();
目前我的 d 是 2017-12-29
并且 dTarget 是 2017-12-31
现在我正在尝试使用 Joda 时间 api 计算它们之间的天数。我希望天数为 2,但目前我得到的是 1,我认为这是不正确的。
我的时区是UTC+5:45
//joda initital datetime
DateTime intdt = new DateTime(new Date());
DateTime targetDt = new DateTime(dTarget);
int noOfDays = Days.daysBetween(intdt,targetDt).getDays();
System.out.println(noOfDays);
我是否正确找到了两个日期之间的差异?为什么在这种情况下不显示 2?
SimpleDateFormat myFormat = new SimpleDateFormat("dd MM yyyy");
String inputString1 = "23 01 1997";
String inputString2 = "27 04 1997";
try {
Date date1 = myFormat.parse(inputString1);
Date date2 = myFormat.parse(inputString2);
long diff = date2.getTime() - date1.getTime();
System.out.println ("Days: " + TimeUnit.DAYS.convert(diff, TimeUnit.MILLISECONDS));
} catch (ParseException e) {
e.printStackTrace();
}
使用这个
Days.daysBetween(intdt.toLocalDate(), targetDt.toLocalDate()).getDays()
LocalDate
class 不存储或表示时间或时区。相反,它是对日期的描述。