给出2个DATE,  Date date1; Date date2;怎么输出下面的字符串(时间间隔)2010年9月9-10日

解决方案 »

  1.   

    先用SimpleDateFormat都转化yyyy-MM-dd 转化成成字符串 在分隔 
    在分贝比较 年月日?
      

  2.   


    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    public class XCC {
    public static void main(String[] args) {
    SimpleDateFormat f = new SimpleDateFormat("yyyy年MM月dd日");
    Date date1 = new Date(System.currentTimeMillis());
    Date date2 = new Date(System.currentTimeMillis()+100000000000L);
    Calendar c1 = Calendar.getInstance();
    Calendar c2 = Calendar.getInstance();
    c1.setTime(date1);
    c2.setTime(date2);

    if(c1.after(c2))//下边的程序总认为c1在c2之前
    {
    c1.setTime(date2);
    c2.setTime(date1);
    }
    //开始判断年,月,日
    if(c1.get(Calendar.YEAR)<c2.get(Calendar.YEAR))//年份不相同,全部输出
    {
    System.out.println(f.format(c1.getTime())+"-"+f.format(c2.getTime()));
    }else//年份相同,因为c1肯定是小的,不可能大于
    {
    if(c1.get(Calendar.MONTH)<c2.get(Calendar.MONTH))//月份不相同,不输出年
    {
    System.out.println(f.format(c1.getTime())+"-"+f.format(c2.getTime()).substring(5));
    }else
    {
    System.out.println(f.format(c1.getTime())+"-"+f.format(c2.getTime()).substring(8));
    }
    }
    }
    }