Calculating the number of days between two dates using joda time api
我有两个约会。我正在从数据库中获取日期,如下所示:
1 2
| Date d = new Date();
Date dTarget = finance. getTargetDate(); |
目前我的D是2017-12-29,dtarget是2017-12-31。
现在,我尝试使用Joda时间API计算它们之间的天数。我期望天数为2,但目前我得到1,我认为这是不正确的。
我的时区是UTC+5:45。
1 2 3 4 5 6
| //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?
- 本days.daysbetween(尝试),targetdt.tolocaldate intdt.tolocaldate()()().getdays
- 你可以尝试这Days.daysBetween(new LocalDate(start), new LocalDate(end)).getDays();
- 现在是使用EN。localdate表现后2天。现在,让我是正确的。谢谢noob VTS和程序员。
- 接受的答案。
- fyi the卓达项目时间,现在是在维护模式,团队advising with the to the java.time)类。Oracle教程模式区。
- Please之前posting搜索栈溢出。你可以承担任何日期时间has already Basic和我要回答问题。提示:2java.time.temporal.ChronoUnit.DAYS.between( LocalDate.parse("2017-12-29" ) , LocalDate.parse("2017-12-31" ) )is。
用这个
1
| Days.daysBetween(intdt.toLocalDate(), targetDt.toLocalDate()).getDays() |
LocalDate类不存储或表示时间或时区。相反,它是对日期的描述。
1 2 3 4 5 6 7 8 9 10 11 12
| 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();
} |
- 请不要教年轻人使用过时的、臭名昭著的麻烦的SimpleDateFormat课程。更不用说他们已经在用更好的东西了,在这种情况下,joda time。
- FYY,麻烦的旧日期时间类,如EDCOX1,1,EDCOX1,2,EDCX1,3,现在是遗留的,被Java.Times类替换成Java 8和Java 9。请参见Oracle教程。