【发布时间】:2016-12-01 04:25:40
【问题描述】:
我在计算两个日期字段之间的天数时遇到了一些问题。我已经试过了
`
DateField dateStart = new DateField();
DateField dateEnd = new DateField();
DateTime start = new DateTime(dateStart);
DateTime end = new DateTime(dateEnd);
int days = Days.daysBetween(new DateTime(start), new DateTime(end)).getDays();
`
这是我运行此代码后得到的错误
java.lang.IllegalArgumentException: No instant converter found for type: com.vaadin.ui.DateField
我也已经尝试过使用 ChronoUnit
LocalDate startDate = LocalDate.now().minusDays(1);
LocalDate endDate = LocalDate.now();
long days = Period.between(startDate, endDate).getDays();
assertEquals(1, days);
long days2 = ChronoUnit.DAYS.between(startDate, endDate);
assertEquals(1, days2);
还有柔道时间
DateTime startDate = new DateTime().minusDays(1);
DateTime endDate = new DateTime();
Days d = Days.daysBetween(startDate, endDate);
int days = d.getDays();
两个代码我都得到 NullPointerException 错误。有什么办法可以得到天数。
【问题讨论】:
-
我不确定 DateTime 是什么类型的类,但使用字段作为输入创建一个新的 DateTime 可能是错误的。为什么不直接使用 dateStart.getValue() 您可以使用 getTime() 将此 Date 转换为 ms 或转换为 Calendar 或 LocalDateTime 以获得更方便的方法