使用Joda-Time,期间!:)
虽然"超过20年"可能在某种程度上取决于您所谈论的日历,当您开始计算,闰年或夏令时时,Joda-Time将为您提供util.Calendar类的更多灵活性.不建议使用util.Date,计算毫秒(或其他类似的东西)可能会导致错误的代码.
JODA-TIME代码示例:
鉴于:
int year1 = 2012, month1 = 2, day1 = 7;
int year2 = 1987, month2 = 7, day2 = 23;
//You can include a TimeZone if needed in the constructors below
DateTime dateTime1 = new DateTime(year1, month1, day1, 0, 0); //2012-02-07T00:00:00.000-05:00
DateTime dateTime2 = new DateTime(year2, month2, day2, 0, 0); //1987-07-23T00:00:00.000-04:00
Run Code Online (Sandbox Code Playgroud)
选项1,无聊......
DateTime twentyYearsBefore = dateTime1.minusYears(20); //1992-02-07T00:00:00.000-05:00
if(dateTime2.compareTo(twentyYearsBefore) == -1)
System.out.println("The difference between the dates is greater than 20 years");
Run Code Online (Sandbox Code Playgroud)
选项2,好东西!
Days d = Days.daysBetween(dateTime1, dateTime2);
int days = d.getDays(); //-8965 days
System.out.println("There are " + days + " days between the two dates");
Run Code Online (Sandbox Code Playgroud)
选项3,火箭科学!;)
Period periodDifference = new Period(dateTime1, dateTime2);
System.out.println(periodDifference); //prints: P-24Y-6M-2W-1D
Run Code Online (Sandbox Code Playgroud)
当然,Period类有很多方法只能获取相关字段.单击以下以获取DateTime和Days的API
| 归档时间: |
|
| 查看次数: |
2833 次 |
| 最近记录: |