public static String Adddate(String strDate, int days) {
     String[] date = strDate.split("-"); //将要转换的日期字符串拆分成年月日
     int year, month, day;
     year = Integer.parseInt(date[0]);
     month = Integer.parseInt(date[1]) - 1;
     day = Integer.parseInt(date[2]);
     GregorianCalendar d = new GregorianCalendar(year, month, day);
     d.add(Calendar.DATE, days);
     Date dd = d.getTime();
     DateFormat df = DateFormat.getDateInstance();
     String adddate = df.format(dd);
     return adddate;
}Adddate函数为取日期的前几天或者后几天Adddate("2007-03-01",-1)  2007-03-01的前一天
Adddate("2007-12-31",1)  2007-12-31的后一天在windows下取出正常
2007-2-28
2008-1-1Linux下为
Feb 28, 2007
Jan 1, 2008谁知道怎么才能正常显示跟windows下一样?

解决方案 »

  1.   

     SimpleDateFormat myFmt1=new SimpleDateFormat("yyyy-MM-dd");
     String adddate = myFmt1.format(dd);
         return adddate;
    最后3句换为以上3句就OK啦。利用SimpleDateFormat类进行日期的格式化处理。来人散分喽。
      

  2.   

    我来了,把帖子链接贴上,顺便改改你的函数,换一种做法
    http://topic.csdn.net/u/20071201/20/9da72fa1-4c46-4d92-9cb5-c9713ca98b10.html
        public static String Adddate(String strDate, int days)   { 
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); 
            Calendar calendar = Calendar.getInstance();
            try {
                Date dt = format.parse(strDate);
                calendar.setTime(dt);
                calendar.add(Calender.DATE, days);
            } catch (Throwable e) {
                e.printStackTrace();
            }
            return format.format(calendar.getTime());
        }