我正在做一个简单的计算来获得两个日期之间的差异。如果我使用 Date
类,我可以这样做:
Date d1 = new GregorianCalendar(2000, 11, 31, 23, 59).getTime();
/** Today's date */
Date today = new Date();
// Get msec from each, and subtract.
long diff = today.getTime() - d1.getTime();
System.out.println("The 21st century (up to " + today + ") is "
+ (diff / (1000 * 60 * 60 * 24)) + " days old.");
}
但是我在本地日期中找不到像 getTime() 这样的方法。有什么方法可以让我轻松实现我想要实现的目标吗?
我什至尝试将 LocalDate 对象更改为临时日期对象,如下所示:
LocalDate date=new LocalDate();
Date d=date.toDate();
但是方法 toDate() 不起作用。即它说它不是可识别的方法。(因此编译时错误)但从我可以看到它在文档中
感谢您抽出宝贵时间,当然感恩节快乐。
最佳答案
Days.daysBetween()就是答案。
LocalDate now = new LocalDate();
LocalDate past = now.minusDays(300);
int days = Days.daysBetween(past,now).getDays();
永远不要将 LocalDate 转换为 Java Date(两种完全不同的野兽),如果您只是处理日期。 Jodatime Localdate 是一个真正的“日历日期”,即 {day,month,year} 的元组(连同公历规范),与“物理时间”(秒、小时等)无关。如果您需要进行日期算术,请坚持使用 Localdate,您将永远不需要担心使用 java Dates 进行日期算术时可能出现的愚蠢错误(时区、DST 等)。
关于java - getTime()(Date 中的一个方法)在 joda.time.LocalDate 中的等效项是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8233900/