现在已知两个时间的毫秒值,请问如何利用这两个值计算出他们之间相隔的年份?谢谢了!

解决方案 »

  1.   

    使用 joda-time这个第三方关于时间的库。        // 7:40:20.500 AM on February 7, 2000
            DateTime start = new DateTime(2000, 2, 7, 7, 40, 20, 500);        // 3:30:45.100 PM on July 4, 2008
            DateTime end = new DateTime(2008, 7, 4, 15, 30, 45, 100);        // Years
            Years years = Years.yearsBetween(start, end);
            System.out.println("years = " + years.getYears());        // Months
            Months months = Months.monthsBetween(start, end);
            System.out.println("months = " + months.getMonths());        // Weeks
            Weeks weeks = Weeks.weeksBetween(start, end);
            System.out.println("weeks = " + weeks.getWeeks());        // Days
            Days days = Days.daysBetween(start, end);
            System.out.println("days = " + days.getDays());        // Hours
            Hours hours = Hours.hoursBetween(start, end);
            System.out.println("hours = " + hours.getHours());        // Minutes
            Minutes minutes = Minutes.minutesBetween(start, end);
            System.out.println("minutes = " + minutes.getMinutes());        // Seconds
            Seconds seconds = Seconds.secondsBetween(start, end);
            System.out.println("seconds = " + seconds.getSeconds());
      

  2.   

    package test;import java.util.ArrayList;
    import java.util.Calendar;
    import java.util.List;public class Test {

    public static List<Integer> getYears(long start,long end){
    //存储着年份列表
    List<Integer> years = new ArrayList<Integer>();
    //创建开始时间
    Calendar startCalendar = Calendar.getInstance();
    startCalendar.setTimeInMillis(start);
    //创建结束时间
    Calendar endCalendar = Calendar.getInstance();
    endCalendar.setTimeInMillis(end);
    //得到这两个时间毫秒值的年份
    int startYear = startCalendar.get(Calendar.YEAR);
    int endYear = endCalendar.get(Calendar.YEAR);
    //得到这两个年份之间的年份保存到years中,注意这里把这两个毫秒值的年份也加进来来,如果不想要请自行处理吧
    while(startYear <= endYear){
    years.add(startYear);
    startYear++;
    }
    //返回出去
    return years;
    }

    public static void main(String[] args) {
    long start = 1;
    long end = 10053454240024L;
    List<Integer> list = Test.getYears(start, end);
    for(Integer year : list){
    System.out.println(year);
    }
    }
    }
      

  3.   


    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    java.util.Date now = df.parse("2010-07-24 13:31:40");
    java.util.Date date = df.parse("2012-12-12 11:30:24");
    long passtime = date.getTime() - now.getTime();
    long year = passtime / (24 * 60 * 60 * 1000)/365;
    long day = passtime / (24 * 60 * 60 * 1000);
    long hour = (passtime / (60 * 60 * 1000) - day * 24);
    long min = ((passtime / (60 * 1000)) - day * 24 * 60 - hour * 60);
    long s = (passtime / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60);
    System.out.println("" + year + "年" + day + "天" + hour + "小时" + min
    + "分" + s + "秒");
      

  4.   

    Calendar是一个抽象类,你可以实现这个抽象类的方法完成自定义的日历。它还提供了丰富的方法,自己慢慢研究吧!