java中常用的日期格式化(全)

jopen 8年前

import java.text.DateFormat;  import java.text.ParseException;  import java.text.SimpleDateFormat;  import java.util.Calendar;  import java.util.Date;  /**   * 获取当前的日期格式为:yyyy-MM-dd HH:mm:ss   *    * @author Arthur(user_006)   * @version 1.0.0 2010/04/24 14:00(星期六)   */  public class TimerUtil {     /**    * 获取当前的日期 , 默认格式    *     * @return 当前的日期    */   public synchronized static Date getCurrentCalendar() {      Calendar calendar = Calendar.getInstance();    return calendar.getTime();   }     /**    * 获取当前日期 , 格式yyyy-MM-dd , 如: 2010-04-24    *     * @return    */   public synchronized static String getCurrentDate() {      Calendar calendar = Calendar.getInstance();      StringBuffer sb = new StringBuffer();      sb.append(calendar.get(Calendar.YEAR)).append("-");    sb.append(calendar.get(Calendar.MONTH) + 1).append("-");    sb.append(calendar.get(Calendar.DAY_OF_MONTH));    return sb.toString();   }     /**    * 把字符形式的日期转换成Date类型 , 格式yyyy-MM-DD    *     * @param date    *            日期的字符串形式    *     * @return Data类型的日期    */   public synchronized static Date convertToDate(String date) {      DateFormat format = new SimpleDateFormat("yyyy-MM-DD");      try {       return format.parse(date);      } catch (ParseException e) {       e.printStackTrace();    }    return null;   }     /**    * 把日期转换为指定的格式    *     * @param date    *            要转换的日期    * @param pattern    *            转换的格式    * @return    */   public synchronized static Date format(Date date, String pattern) {      if (pattern != null && pattern.trim().length() > 0) {       DateFormat format = new SimpleDateFormat(pattern);       String stringDate = format.format(date);       return TimerUtil.convertToDate(stringDate);    }    return null;   }     /**    * 将日期转换为字符串 , 格式yyyy-MM-dd HH:mm:ss    *     * @param date    *            要转换的日期    * @return    */   public synchronized static String convertToString(Date date) {      DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");    return format.format(date);   }      /**    * 将日期转换为字符串 , 格式yyyy-MM-dd HH:mm:ss    *     * @param date    *            要转换的日期    * @return    */   public synchronized static String convertToStrShort(Date date) {      DateFormat format = new SimpleDateFormat("yyyy-MM-dd");    return format.format(date);   }     /**    * 将日期转换为字符串 , 格式yyyyMMddHHmmss    *     * @param date    *            要转换的日期    * @return    */   public synchronized static String convertToString2(Date date) {    DateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");    return format.format(date);   }        /**    * 将日期转换为指定格式的字符串    *     * @param date    *            要转换的日期    * @param formatText    *            转换的格式    * @return    */   public synchronized static String convertToString(Date date,     String formatText) {      DateFormat format = new SimpleDateFormat(formatText);      Calendar calendar = Calendar.getInstance();      StringBuffer sb = new StringBuffer();      sb.append(calendar.get(Calendar.YEAR)).append("-");    sb.append(calendar.get(Calendar.MONTH) + 1).append("-");    sb.append(calendar.get(Calendar.DAY_OF_MONTH));      return format.format(date);   }     /**    * 获取本周一的日期    *     * @return    */   public synchronized static Date getMondayOFWeek() {      Calendar calendar = Calendar.getInstance();    calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);// 这里设置从周一开始,若需要根据系统时区自动获取,则采用下边的方式      return calendar.getTime();   }     /**    * 获取本周日日期    *     * @return    */   public synchronized static Date getCurrentWeekday() {      Calendar calendar = Calendar.getInstance();    calendar.add(Calendar.DATE, getCurrentPlus());// 把当前日期的DATE加上当前日期与本周日之间相差的天数    return calendar.getTime();   }     /**    * 获取上周日的日期    *     * @return    */   public synchronized static Date getPreviousWeekday() {      Calendar calendar = Calendar.getInstance();    // calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY+7);    calendar.add(Calendar.DATE, getCurrentPlus() - 7);// 把当前日期的DATE加上当前日期与本周日之间相差的天数    return calendar.getTime();   }     /**    * 获取上周日的日期    *     * @return    */   public synchronized static Date getPreviousMonday() {      Calendar calendar = Calendar.getInstance();    // calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY+7);    calendar.add(Calendar.DATE, getCurrentPlus() - 13);// 把当前日期的DATE加上当前日期与本周日之间相差的天数    return calendar.getTime();   }     /**    * 获取上周日的日期    *     * @return    */   public synchronized static Date getNextWeekday() {      Calendar calendar = Calendar.getInstance();    // calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY+7);    calendar.add(Calendar.DATE, getCurrentPlus() + 1 + 6);// 把当前日期的DATE加上当前日期与本周日之间相差的天数    return calendar.getTime();   }     /**    * 获取上周日的日期    *     * @return    */   public synchronized static Date getNextMonday() {      Calendar calendar = Calendar.getInstance();    // calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY+7);    calendar.add(Calendar.DATE, getCurrentPlus() + 1);// 把当前日期的DATE加上当前日期与本周日之间相差的天数    return calendar.getTime();   }     /**    * 获取当前日期与本周周日之间相差的天数    *     * @return    */   public synchronized static int getCurrentPlus() {      Calendar calendar = Calendar.getInstance();    int days = calendar.get(Calendar.DAY_OF_WEEK) - 1;// 在中国是已星期一作为一周的第一天,所以这里减1    return 7 - days;   }     public synchronized static int getCurrentYear() {      Calendar calendar = Calendar.getInstance();    return calendar.get(Calendar.YEAR);   }     /**    * 返回指定日期的当月第一天    *     * @param date    * @return    */   @SuppressWarnings("static-access")   public synchronized static Date getFirstDayInMonth(Date date) {      Calendar calendar = Calendar.getInstance();    calendar.setTime(date);    calendar.set(calendar.DATE, 1);    return calendar.getTime();   }     /**    * 返回指定日期的当月最后一天    *     * @param date    * @return    */   @SuppressWarnings("static-access")   public synchronized static Date getLastDayInMonth(Date date) {      Calendar calendar = Calendar.getInstance();      calendar.setTime(date);    calendar.add(calendar.MONTH, 1);    calendar.set(calendar.DATE, 1);    calendar.add(calendar.DATE, -1);      return calendar.getTime();   }     /*    * 计算两个日期之间的天数    */   public static int getDaysBetween(Calendar d1, Calendar d2) {    if (d1.after(d2)) {     java.util.Calendar swap = d1;     d1 = d2;     d2 = swap;    }    int days = d2.get(Calendar.DAY_OF_YEAR) - d1.get(Calendar.DAY_OF_YEAR);    int y2 = d2.get(Calendar.YEAR);    if (d1.get(Calendar.YEAR) != y2) {     d1 = (Calendar) d1.clone();     do {      days += d1.getActualMaximum(Calendar.DAY_OF_YEAR);// 得到当年的实际天数      d1.add(Calendar.YEAR, 1);     } while (d1.get(Calendar.YEAR) != y2);    }    return days;   }   /*    * 计算两个日期之间的时间    */   public static String getGapTime(Date createTime) {    // TODO Auto-generated method stub    Calendar d2 = Calendar.getInstance();    Calendar d1 = Calendar.getInstance();    d1.setTime(createTime);    int days = d2.get(Calendar.DAY_OF_YEAR) - d1.get(Calendar.DAY_OF_YEAR);    if (days < 1) {     int hour = d2.get(Calendar.HOUR_OF_DAY)       - d1.get(Calendar.HOUR_OF_DAY);     if (hour < 1) {      int munites = d2.get(Calendar.MINUTE) - d1.get(Calendar.MINUTE);      if (munites == 0) {       return "刚刚";      } else {       return munites + "分钟前";      }     } else {      return hour + "小时前";     }      } else {     return days + "天前";    }   }      //加天数   public static String addDays(int day){    Calendar calendar = Calendar.getInstance();    calendar.add(Calendar.DAY_OF_MONTH, day);    StringBuffer sb = new StringBuffer();    sb.append(calendar.get(Calendar.YEAR)).append("-");    sb.append(calendar.get(Calendar.MONTH) + 1).append("-");    sb.append(calendar.get(Calendar.DAY_OF_MONTH));    return sb.toString();   }      //加年份   public static String addYears(String now, int year) throws ParseException{      Calendar fromCal=Calendar.getInstance();            DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");      Date date=dateFormat.parse(now);      fromCal.setTime(date);      fromCal.add(Calendar.YEAR, year);            return dateFormat.format(fromCal.getTime());    }      //加天数(特定时间)   public static String addDate(String now, int day) throws ParseException{      Calendar fromCal=Calendar.getInstance();            DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");      Date date=dateFormat.parse(now);      fromCal.setTime(date);      fromCal.add(Calendar.DATE, day);            return dateFormat.format(fromCal.getTime());    }     /**    * 格多少时间    * @throws ParseException     */     @SuppressWarnings("deprecation")   public static void main(String[] args) throws ParseException {    System.out.println(TimerUtil.addYears("2008-12-01",7));   }    /*public static void main(String[] args) {        String createDate = "2008-12-01";        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");        try {         Date date = sdf.parse(createDate);         Calendar cl = Calendar.getInstance();         cl.setTime(date);         cl.add(Calendar.DATE,31);         String temp = "";         temp = sdf.format(cl.getTime());         System.out.println(temp);        } catch (ParseException e) {         // TODO Auto-generated catch block         e.printStackTrace();        }     }*/  }

来自: http://blog.csdn.net//u011067360/article/details/24414561