자바 상용 DateUtils 도구 클래스

8770 단어 자바
package com.irs.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import org.apache.log4j.Logger;

/**
 * 
* @ClassName: DateUtil 
* @Description:      
* @Author: 
* @Version: V1.00 (   )
* @CreateDate:  2018 12 22    12:12:43
 */
public class DateUtil {
	private static Logger LOGGER = Logger.getLogger(DateUtil.class);

	/**
	 * Format String : yyyy-MM-dd HH:mm:ss
	 */
	public static final String DateFormat1 = "yyyy-MM-dd HH:mm:ss";

	/**
	 * Format String : yyyy-MM-dd
	 */
	public static final String DateFormat2 = "yyyy-MM-dd";

	/**
	 * Format String : yyyyMMdd
	 */
	public static final String DateFormat3 = "yyyyMMdd";

	/**
	 * Format String : yyyyMMdd HHmmss
	 */
	public static final String DateFormat4 = "yyyyMMdd HHmmss";

	/**
	 * Format String : yyyy-MM-dd HH:mm
	 */
	public static final String DateFormat5 = "yyyy-MM-dd HH:mm";

	/**
	 * Format String : yyyyMMdd HH:mm
	 */
	public static final String DateFormat6 = "yyyyMMdd HH:mm";

	/**
	 * Format String : yyyy MM dd 
	 */
	public static final String DateFormat7 = "yyyy MM dd ";

	/**
	 *       
	 * 
	 * @return Date  
	 */
	public static Date getDate() {
		Calendar calendar = Calendar.getInstance();
		return calendar.getTime();
	}

	/**
	 *       
	 * 
	 * @param format
	 *                
	 * @return string            
	 */
	public static String getDate(String format) {
		return getStringDate(getDate(), format);
	}

	/**
	 *        
	 * 
	 * @param date
	 *            Date
	 * @param method
	 *                
	 * @return        
	 */
	public static String getStringDate(Date date, String method) {
		SimpleDateFormat sdf = new SimpleDateFormat(method);
		String ret = null;
		try {
			ret = sdf.format(date);
		} catch (Exception ex) {
			LOGGER.error(ex, ex);
		}
		return ret;
	}

	/**
	 *            
	 * 
	 * @param dateStr
	 *            'yyyyMMdd'
	 * @param days
	 *              
	 * @return Date  
	 */
	public static Date getDate(String dateStr, int days) {
		return getDate(getDate(dateStr, DateFormat3), days);
	}

	/**
	 *   String      Date
	 * 
	 * @param stringDate
	 *              
	 * @param method
	 *              
	 * @return   Date
	 */
	public static Date getDate(String stringDate, String method) {
		SimpleDateFormat sdf = new SimpleDateFormat(method);
		Date ret = null;
		try {
			String integerDate = stringDate.replaceAll("-", "").replaceAll("/", "").replaceAll(" ", "")
					.replaceAll(" ", "").replaceAll(" ", "").replaceAll(":", ":");
			ret = sdf.parse(integerDate);
		} catch (Exception ex) {
			LOGGER.error(ex, ex);
		}
		return ret;
	}

	/**
	 * 
	 * @Title: getDateByString
	 * @Description:          
	 * @Author: 
	 * @Version: V1.00 (   )
	 * @CreateDate: 2018 11 8    4:33:51
	 * @Parameters: @param s
	 * @Parameters: @return
	 * @Parameters: @throws ParseException
	 * @Return Date
	 * @Throws
	 */
	public static Date getDateByString(String s) throws ParseException {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Date date = sdf.parse(s);
		return date;
	}

	/**
	 * 
	 * @Title: getDatePoor
	 * @Description:           :      
	 * @Author: 
	 * @Version: V1.00 (   )
	 * @CreateDate: 2018 8 20    10:15:35
	 * @Parameters: @param endDate
	 * @Parameters: @param nowDate
	 * @Parameters: @return
	 * @Return String
	 * @Throws
	 */
	public static String getDatePoor(Date endDate, Date nowDate) {

		long nd = 1000 * 24 * 60 * 60;
		long nh = 1000 * 60 * 60;
		long nm = 1000 * 60;
		long ns = 1000;
		//              
		long diff = endDate.getTime() - nowDate.getTime();
		//       
		long day = diff / nd;
		//        
		long hour = diff % nd / nh;
		//        
		long min = diff % nd % nh / nm;
		//       //    
		long sec = diff % nd % nh % nm / ns;
		String time = "";
		if (day == 0) {
			if (hour == 0) {
				if (min == 0) {
					time = sec + " ";
				} else {
					time = min + "  ";
				}
			} else {
				time = hour + "  " + min + "  ";
			}
		} else {
			time = day + " " + hour + "  " + min + "  ";
		}
		return time;
	}

	/**
	 *          
	 * 
	 * @param beginDate
	 *                
	 * @param endDate
	 *                
	 * @return   
	 */
	public static int getDayCount(Date beginDate, Date endDate) {
		int count = 0;
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(beginDate);
		while (calendar.getTime().before(endDate)) {
			count++;
			calendar.add(Calendar.DAY_OF_YEAR, 1);
		}
		return count;
	}

	/**
	 * 
	 * @Title: getMonth
	 * @Description:   +1,    ,-1    
	 * @Author: 
	 * @Version: V1.00 (   )
	 * @CreateDate: 2018 12 19    3:17:42
	 * @Parameters: @param data
	 * @Parameters: @param month
	 * @Parameters: @return
	 * @Return String
	 * @Throws
	 */
	public static Date getMonth(Date data, int month) {
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(data);
		calendar.add(Calendar.MONTH, month);
		/*
		 * date = calendar.getTime(); return DateUtil.getStringDate(date,
		 * DateUtil.DateFormat2);
		 */
		return calendar.getTime();
	}

	/**
	 * 
	 * @Title: getDate
	 * @Description:          :+1   ,-1   
	 * @Author: 
	 * @Version: V1.00 (   )
	 * @CreateDate: 2018 12 19    2:11:08
	 * @Parameters: @param date
	 * @Parameters: @param days
	 * @Parameters: @return
	 * @Return Date
	 * @Throws
	 */
	public static Date getDate(Date date, int days) {
		Calendar now = Calendar.getInstance();
		now.setTime(date);
		now.add(Calendar.DATE, days);
		return now.getTime();
	}

	/**
	 * 
	 * @Title: getTime
	 * @Description:          /    
	 * @Author: 
	 * @Version: V1.00 (   )
	 * @CreateDate: 2018 12 19    3:26:17
	 * @Parameters: @param data
	 * @Parameters: @param month
	 * @Parameters: @param day
	 * @Parameters: @return
	 * @Return Date
	 * @Throws
	 */
	public static Date getTime(Date data, int month, int days) {
		Date getMoth = getMonth(data, month);
		Date d = getDate(getMoth, days);
		return d;
	}

	/**
	 *   LONG       
	 * 
	 * @param diff
	 * @return
	 */
	public static String LongToString(long diff) {
		String showtime = "";
		long oneSecond = 1000;
		long oneMinute = oneSecond * 60;
		long oneHour = oneMinute * 60;
		long hours = diff / oneHour;
		diff -= hours * oneHour;
		long minutes = diff / oneMinute;
		diff -= minutes * oneMinute;
		long seconds = diff / oneSecond;
		if (hours > 0)
			showtime += hours + " ";
		if (minutes > 0)
			showtime += minutes + " ";
		if (seconds > 0)
			showtime += seconds + " ";
		return showtime;
	}
}

보충:
2. my sql 날짜 시간 유형
mysql (5.5) 이 지원 하 는 날짜 와 시간 유형 은 다음 과 같 습 니 다: DATETIME, TIMESTAMP、DATE、TIME、YEAR.
몇 가지 유형 은 다음 과 같다.
날짜 시간 형식
공간 을 점용 하 다
날짜 형식
최소 값
최대 치
0 값 표시
 DATETIME
 8 bytes
 YYYY-MM-DD HH:MM:SS
 1000-01-01 00:00:00
9999-12-31 23:59:59 
0000-00-00 00:00:00
 TIMESTAMP
 4 bytes
 YYYY-MM-DD HH:MM:SS
 19700101080001
2038 년 어느 순간
00000000000000
 DATE
 4 bytes
 YYYY-MM-DD
1000-01-01 
9999-12-31 
0000-00-00
 TIME
 3 bytes
 HH:MM:SS
 -838:59:59
838:59:59 
00:00:00
 YEAR
 1 bytes
 YYYY
1901 
2155 
0000
 
 
 
 
 
 
 
DATETIME
     DATETIME 은 연월일 시 분 초 를 나타 내 는 데 사용 되 며 DATE 와 TIME 의 조합 이 며 기 록 된 연도 (위의 표 참조) 가 비교적 길다.실제 애플 리 케 이 션 에 이런 요구 사항 이 있 으 면 DATETIME 타 입 을 사용 할 수 있다.
 TIMESTAMP
  • TIMESTAMP 는 년 월 일 시 분 초 를 나타 내 는 데 사용 되 지만 기 록 된 연도 (위의 표 참조) 는 비교적 짧다.
  • TIMESTAMP 는 시간 대 와 관련 되 어 현재 시간 을 더욱 잘 반영 한다.날 짜 를 삽입 할 때 로 컬 시간 대로 전환 한 다음 저장 합 니 다.날 짜 를 조회 할 때 날 짜 를 로 컬 시간 대로 바 꾼 다음 표시 합 니 다.그래서 서로 다른 시간 대 사람들 이 본 같은 시간 은...  달라 요.
  • 표 의 첫 번 째 TIMESTAMP 열 은 자동 으로 시스템 시간 으로 설 정 됩 니 다 (CURRENT TIMESTAMP).한 줄 을 삽입 하거나 업데이트 할 때 TIMESTAMP 열 에 값 을 부여 하지 않 으 면 현재 시스템 시간 으로 자동 으로 설 정 됩 니 다.표 에 두 번 째 TIMESTAMP 열 이 있 으 면 기본 값 은 0000 - 00 - 00 00 00: 00 으로 설정 합 니 다.
  • TIMESTAMP 의 속성 은 Mysql 버 전과 서버 SQL Mode 의 영향 을 많이 받는다.

  •      기 록 된 날짜 가 시간 대별 로 사 용 될 경우 TIMESTAMP 를 사용 하 는 것 이 좋다.
     DATE
        DATE 는 연 월 일 을 나타 내 는 데 사용 되 며, 실제 적용 값 이 연 월 일 을 저장 해 야 할 경우 DATE 를 사용 할 수 있다.
     TIME
        TIME 는 시 분 초 를 나타 내 는 데 사용 되 며, 실제 값 을 저장 해 야 할 때 분 초 를 사용 하면 TIME 를 사용 할 수 있다.
     YEAR
        YEAR 은 연 도 를 나타 내 는 데 사용 되 며 YEAR 은 2 자리 (4 자리 사용 이 가장 좋 음) 와 4 자리 형식의 해 가 있다.기본 값 은 4 자리.실제 응용 프로그램 이 연도 만 저장 된다 면 1 bytes 로 YEAR 형식 을 저장 하면 충분 합 니 다.저장 공간 을 절약 할 수 있 을 뿐만 아니 라 표 의 조작 효율 도 높 일 수 있다.

    좋은 웹페이지 즐겨찾기