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

jopen 8年前發布 | 12K 次閱讀 Java開發

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();
           }
        }*/

}</pre>

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

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!